Bu liste PHP kurulumunuzu yapılandırmakta kullanacağınız yerleşik php.ini yönergelerini içerir. Eklentilerle ilgili yönergeler eklentinin kendi belgelerinde listelenmiş ve açıklanmışladır. Örneğin, oturum yönergeleri ile ilgili bilgileri oturumlar sayfasında bulabilirsiniz.
Bilginize:
Burada listelenen öntanımlılar php.ini yüklenirken kullanılır; değerler kullanıcı içindir ve geliştirilmekte olan php.ini farklı olabilir.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
async_send | "0" | PHP_INI_ALL | PHP 4.2.0 ve sonrasında mevcuttur. PHP 4.3.0'da kaldırıldı. |
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
short_open_tag | "1" | PHP_INI_PERDIR | PHP 4.0.0'da PHP_INI_ALL. PHP >= 4.0.1'de PHP_INI_PERDIR |
asp_tags | "0" | PHP_INI_PERDIR | PHP 4.0.0'da PHP_INI_ALL. PHP 7.0.0'da kaldırıldı. |
precision | "14" | PHP_INI_ALL | |
serialize_precision | "17" | PHP_INI_ALL | PHP 4.3.2 ve sonrasında mevcuttur. PHP 5.3.5'e kadar öntanımlı değer 100 idi. |
y2k_compliance | "1" | PHP_INI_ALL | |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP 4.0.0'da PHP_INI_ALL. PHP 5.4.0'da kaldırıldı. |
disable_functions | "" | sadece >PHP_INI_SYSTEM | PHP 4.0.1 ve sonrasında mevcuttur. |
disable_classes | "" | sadece php.ini | PHP 4.3.2 ve sonrasında mevcuttur. |
exit_on_timeout | "" | PHP_INI_ALL | PHP 5.3.0 ve sonrasında mevcuttur. |
expose_php | "1" | sadece php.ini | |
zend.multibyte | "0" | PHP_INI_ALL | PHP 5.4.0 ve sonrasında mevcuttur. |
zend.script_encoding | NULL | PHP_INI_ALL | PHP 5.4.0 ve sonrasında mevcuttur. |
zend.detect-unicode | NULL | PHP_INI_ALL | PHP 5.4.0 ve sonrasında mevcuttur. |
zend.signal_check | "0" | PHP_INI_SYSTEM | PHP 5.4.0 ve sonrasında mevcuttur. |
zend.assertions | "1" | Kısıtlamalarla PHP_INI_ALL | PHP 7.0.0 ve sonrasında mevcuttur. |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | PHP 5.0.0 ve sonrasında mevcuttur. PHP 5.3.0'da kaldırıldı. |
detect_unicode | "1" | PHP_INI_ALL | PHP 5.1.0 ve sonrasında mevcuttur. PHP 5.4.0'da ismi zend.detect-unicode oldu. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
short_open_tag
boolean
PHP'nin başlangıç etiketinin kısa gösteriminin kullanımına izin
verilip verilmediğini söyler. PHP'yi XML içinde kullanmak
isterseniz <?xml ?>
satırını kullanmak
için bu kısa etiket kullanımını iptal edip uzun etiket
(<?php ?>
) kullanabilirsiniz. Aksi
takdirde satırı <?php echo '<?xml
version="1.0"?>';?>
şeklinde PHP'ye
yazdırabilirsiniz.
Bilginize:
Bu yönerge ayrıca,
<? echo
'ya eşdeğer olan<?=
kısaltmasını da etkiler. Bu kısaltmayı kullanabilmek içinshort_open_tag
yönergesinin değeri 1 olmalıdır.
Sürüm: | Açıklama |
---|---|
7.0.0 | PHP'den kaldırıldı. |
precision
integer
serialize_precision
integer
y2k_compliance
boolean
allow_call_time_pass_reference
boolean
İşlev çağrısı sırasında değiştirgeler gönderimli aktarıldığında uyarı verilip verilmeyeceğini belirler. Bu yöntemin kullanımı Hangi değiştirgelerin gönderimli aktarılacağını işlev bildiriminde belirtmek daha iyidir. Bunu yapıp, betiğinizin, dilin gelecekteki sürümlerinde de düzgün çalışabilmesi için bu yönergeye sıfır atamanız önerilir (yoksa bu özelliği her kullanışınızda bir uyarı alırsınız).
İşlev çağrısı sırasında değiştirgelerin gönderimli aktarımı kodun temizliği açısından önerilmemektedir. Eğer işlev bildiriminde değiştirgenin gönderimli aktarılacağı belirtilmemişse işlev değiştirgesini bilgi vermeden değiştirebilir. Bu yan etkilerden kaçınmak için hangi değiştirgenin gönderimli aktarılacağının sadece işlev bildiriminde belirtilmesi daha iyidir.
Ayrıca bakınız: Gönderimlerle İlgili Herşey.
Sürüm: | Açıklama |
---|---|
5.4.0 | PHP'den kaldırıldı. |
5.3.0 |
E_DEPRECATED seviyesinden hata çıktılar.
|
5.0.0 |
Kullanımı önerilmemektedir ve
E_COMPILE_WARNING seviyesinden hata çıktılar.
|
expose_php
boolean
PHP'nin kurulu olduğu sunucuda sürüm bilgisini HTTP başlığına eklemek suretiyle (örn: X-Powered-By: PHP/5.3.7) kendini karşıya gösterip göstermeyeceğini belirler. PHP 5.5.0 öncesinde PHP logo guid'leri ayrıca ilan edilir; böylece onu PHP betiğinizin URL'sine eklemek suretiyle ilgili logonun gösterilmesini sağlarsınız (örn, » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Bu ayrıca phpinfo() çıktısını da etkiler ve iptal edildiği zaman olduğu gibi PHP logosu ve bazı bilgiler gösterilmez.
Bilginize:
PHP 5.5.0 ve sonrasında bu guid'ler ve php_logo_guid() işlevi kaldırıldı ve guid'lerin yerine veri URI'leri geldi. Bu bakımdan guid'i URL'ye ekleyerek PHP logosuna erişim artık mümkün değildir. Benzer şekilde,
expose_php
'nin off yapılması PHP logosunun phpinfo() içinde görünmesini etkilemez.
Ayrıca bakınız: php_logo_guid() ve phpcredits().
disable_functions
string
Bu yönerge ile sadece dahili işlevler iptal edilebilir. Kullanıcı tarafından tanımlanmış işlevler etkilenmez.
Bu yönerge sadece php.ini içinde atanabilir. Örneğin httpd.conf dosyasında tanımlayamazsınız.disable_classes
string
zend.assertions
integer
Bilginize:
Bir süreç üretim kipinde başlatılmışsa, kararlılık denetimleri kodu üretilmediğinden zend.assertions çalışma anında değiştirilemez.
Bir süreç geliştirme kipinde başlatılmışsa, zend.assertions'a çalışma anında -1 atanamaz.
zend.ze1_compatibility_mode
boolean
Zend Motoru 1 ile uyumluluk kipini etkin kılar (PHP 4). Nesne
kopyalama, tür çarpıtma (özellikleri olmayan nesnelerin türü FALSE
veya 0 olarak çarpıtılır) ve nesne
karşılaştırmayı etkiler. Bu kipte nesneler öntanımlı olan
gönderimle değil değerleriyle aktarılırlar.
Ayrıca bakınız: PHP 4'ten PHP 5'e yükseltme.
Bu özelliğin kullanımı artık ÖNERİLMEMEKTE olup PHP 5.3.0 itibariyle özellik KALDIRILMIŞTIR.
zend.multibyte
boolean
Çokbaytlı kodlanmış kaynak dosyalarının çözümlenmesini etkin kılar. Çokbaytlı dizge verisi içinde özel karakterler içeren SJIS, BIG5, vs. gibi karakter kodlamalarını kullanmak için zend.multibyte etkin olmalıdır. UTF-8, EUC gibi ISO-8859-1 uyumlu kodlamalar bu seçeneğin etkinleştirilmesini gerektirmez.
zend.multibyte seçeneğinin etkin olabilmesi için mbstring eklentisi kullanımda (kurulu) olmalıdır.
zend.script_encoding
string
Betiğin tepesinde declare(encoding=...) yönergesi görünmediği takdirde bu değer kullanılır. ISO-8859-1 ve UTF-8 ile uyumlu olmayan kodlamalar için zend.multibyte ve zend.script_encoding seçeneklerinin ikisi de etkin olmalıdır.
Kod dizgeleri, mb_convert_encoding() çağrılmış gibi zend.script_enconding'den mbstring.internal_encoding'e çevrilir.
zend.detect_unicode
boolean
BOM'a (Bayt sıralama imi) ve dosyanın çokbaytlı karakterler içerip içermediğine bakılır. Bu saptama __halt_compiler() çalıştırılmadan önce yapılır. Sadece Zend Multibyte kipinde kullanılabilir.
zend.signal_check
boolean
Sistemin kapanması sırasında sinyal eylemcilerinin yerleştirilip yerleştirilmediğini sınamak için.
detect_unicode
boolean
Bayt sırası imine ve dosyanın geçerli çok baytlı karakterleri içerip içermediğine bakar. Bu işlem __halt_compiler() işleme sokulmadan önce yapılır. Sadece Çokbaytlı Zend kipinde kullanılabilir.
exit_on_timeout
boolean
Bu Apache1 mod_php modülüne özgü bir yönergedir ve PHP icrası sırasında bir zaman aşımı oluştığu takdirde PHP'yi çalıştıran Apache lat sürecinin çıkmasını sağlar. Böyle bir zaman aşımı Apache1 içinde bazı eklentileri kararsız durumda bırakabilen dahili bir longjmp() çağrısına sebep olur. Süreci sonlandırmak suretiyle takılı kalmış kilitler ve bellek temizlenebilir.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
memory_limit | "128M" | PHP_INI_ALL | PHP 5.2.0 öncesi "8M", PHP 5.2.0'da "16M" |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
memory_limit
integer
Bir betiğin ayırmasına izin verilebilecek belleğin azami miktarını belirler. Bu yönerge, yetersiz betiklerin bir sunucu üzerinde mevcut belleğin tamamını tüketmesini önlemeye yardımcı olur. Belleği sınırlamak istemiyorsanız yönergeye -1 değeri atayın.
PHP 5.2.1 öncesinde, bu yönergeyi kullanabilmek için PHP'yi derlerken --enable-memory-limit yapılandırma seçeneğini kullanmak gerekirdi. 5.2.1 öncesinde bu derleme seçeneği ayrıca, memory_get_usage() ve memory_get_peak_usage() işlevlerinin de tanımlanmasını gerektirirdi.
integer türünde bir değer kullanıldığında değer baytların sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri hakkında bilgiyi bu SSS altında bulabilirsiniz.Ayrıca bakınız: max_execution_time.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
realpath_cache_size | "16K" | PHP_INI_SYSTEM | PHP 5.1.0 ve sonrasında mevcuttur. |
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | PHP 5.1.0 ve sonrasında mevcuttur. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
realpath_cache_size
integer
PHP tarafından kullanılan realpath önbelleğinin boyunu belirler. PHP'nin çok sayıda dosya açtığı sistemlerde gerçekleştirilen dosya işlemlerinin miktarına bağlı olarak bu değerin arttırılması gerekir.
Boyut saklanan dosyanın yol dizgesinin bayt olarak uzunluğunu artı, arabellek girdisiyle ilişkili verinin miktarını gösterir. Yani, arabellekte daha uzun dosya yolu saklamak için arabellek boyutunu arttırmanız gerekir. Bu değer arabelleklenebilen farklı yolların sayısını doğrudan saptayabilmeyi sağlamaz.
Arabellek girdisi için gereken boyut sistemden sisteme değişir.
realpath_cache_ttl
integer
Belli bir dosya veya dizin için realpath bilgisini önbellekte tutma süresi (saniye cinsinden). Dosyaların nadiren değiştiği sistemlerde bu değer arttırılabilir.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
arg_separator.output | "&" | PHP_INI_ALL | PHP 4.0.5 ve sonrasında mevcuttur. |
arg_separator.input | "&" | PHP_INI_PERDIR | PHP 4.0.5 ve sonrasında mevcuttur. |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP <= 5.0.5'te PHP_INI_ALL. |
request_order | "" | PHP_INI_SYSTEM|PHP_INI_PERDIR | PHP 5.3.0 ve sonrasında mevcuttur. |
auto_globals_jit | "1" | PHP_INI_PERDIR | PHP 5.0.0 ve sonrasında mevcuttur. |
register_globals | "0" | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. PHP 5.4.0'da kaldırıldı. |
register_argc_argv | "1" | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. |
register_long_arrays | "1" | PHP_INI_PERDIR | PHP 5.0.0 ve sonrasında mevcuttur. PHP 5.3.0'dan itibaren kullanımı önerilmemektedir. PHP 5.4.0'da kaldırıldı. |
enable_post_data_reading | "1" | PHP_INI_PERDIR | PHP 5.4.0 ve sonrasında mevcuttur. |
post_max_size | "8M" | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_SYSTEM. PHP 4.0.3 ve sonrasında mevcuttur. |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. |
auto_append_file | NULL | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. |
default_mimetype | "text/html" | PHP_INI_ALL | |
default_charset | "" | PHP_INI_ALL | PHP 5.6.0 ve sonrasında öntanımlı değer "UTF-8" öncesinde boş dizgedir. |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. PHP 4.1.0 ve sonrasında mevcut olup PHP 7.0.0'da kaldırılmışır. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
arg_separator.output
string
PHP'de üretilen URL'leri değiştirgelerine ayırmak için kullanılan ayraç.
arg_separator.input
string
Girdi olarak verilen URL'leri değişkenlere çözümlemek için PHP tarafından kullanılan ayraçların listesi.
Bilginize:
Bu yönergede belirtilen her karakter bir ayraç olarak ele alınır!
variables_order
string
EGPCS (Environment, Get, Post, Cookie ve Server) değişken çözümleme sırası belirtilir. Örneğin, değer olarak "SP" belirtilirse, PHP, $_SERVER ve $_POST süper küresellerini oluşturacak ama $_ENV, $_GET ve $_COOKIE süper küresellerini oluşturmayacaktır. Değer olarak "" atanırsa hiçbir süper küresel atanmayacaktır.
Kullanımı önerilmeyen register_globals yönergesine
1 atanırsa variables_order
yönergesi ayrıca,
küresel etki alanındaki ENV,
GET, POST,
COOKIE ve SERVER
değişkenlerinin sırasını da belirler. Örneğin
variables_order
yönergesine
"EGPCS" atanır,
register_globals
etkinleştirilir ve hem
$_GET['action'] hem de
$_POST['action'] atanırsa,
$action değişkeni
$_POST['action'] değerini içerecektir; bunun
sebebi örnek yönergemizde P'nin
G'den sonra gelmesidir.
CGI ve FastCGI SAPI'lerinin her ikisi için de $_SERVER dizisi ortamdaki değerlerle oluşturulur; S, E'nin yönergedeki yerinden bağımsız olarak daima ES'e eşdeğerdir.
Bilginize:
Ayrıca, $_REQUEST dizisinin içeriği ve sırası da bu yönergeden etkilenir.
request_order
string
GET, POST ve Cookie değişkenlerinin $_REQUEST dizisinin içindeki sırasını belirler. Yazma işlemi soldan sağa doğru ilerleyerek yeni değerler eskileri geçersiz kılar.
Bu yönerge atanmazsa $_REQUEST dizisinin içeriği variables_order yönergesiyle belirlenir.
Güvenlik kaygılarından dolayı dağıtımla gelen öntanımlı php.ini dosyaları çerezler için 'C' içermez.
auto_globals_jit
boolean
Etkinleştirildiğinde, SERVER ve ENV değişkenleri betik çalıştırıldığı zaman değil, değişkenler kullanıldığı anda (tam zamanında) oluşturulur. Bu değişkenler bir betik içinde kullanılmamışlarsa bu yönergenin varlığı bir başarım kazancıyla sonuçlanacaktır.
register_globals, register_long_arrays, ve register_argc_argv PHP yönergeleri, bu yönergenin etkili olabilmesi için etkinleştirilmemelidir. PHP 5.1.3 ve sonrasında register_argc_argv'nin etkisiz kılınmasına gerek yoktur.
SERVER ve ENV değişkenlerinin kullanımı derleme sırasında sınanır, dolayısıyla örneğin değişken değişkenler üzerinden kullanılmaları ilklendirilmelerine sebep olmayacaktır.
register_globals
boolean
EGPCS (Environment, GET, POST, Cookie, Server) değişkenlerinin küresel değişkenler haline getirilip getirilmeyeceklerini belirler.
PHP 4.2.0 ve sonrasında, bu yönergenin öntanımlı değeri
off
'tur.
Daha fazla bilgi için register_globals
kullanımı adlı güvenlik
bölümünü okuyunuz.
register_globals
yönergesine çalışma anında (ini_set() ile) değer
atanamayacağına dikkat ediniz. Yine de, yukarıda açıklandığı gibi
konağınız izin veriyorsa .htaccess kullanabilirsiniz. Örnek
.htaccess girdisi:
php_flag register_globals off
.
Bilginize:
register_globals
yönergesi variables_order yönergesinden etkilenir.
Bu özelliğin kullanımı PHP 5.3.0 itibariyle ÖNERİLMEMEKTE olup PHP 5.4.0'da tamamen KALDIRILMIŞTIR.
register_argc_argv
boolean
register_long_arrays
boolean
on
olduğunda
(öntanımlıdır), $HTTP_GET_VARS gibi uzun önceden
tanımlanmış değişkenler tanımlanacaktır. Bunları kullanmayacaksanız
başarımı arttırmak için etkisiz kılmanızı öneririz. Bunların yerine
$_GET gibi süper küresel
dizileri kullanmak daha iyidir.
like $_GET.
Bu yönerge PHP 5.0.0'da kullanılabilir hale gelmiştir.
Bu özelliğin kullanımı PHP 5.3.0 itibariyle ÖNERİLMEMEKTE olup PHP 5.4.0'da tamamen KALDIRILMIŞTIR.
enable_post_data_reading
boolean
post_max_size
integer
post_max_size
değerinden büyük olması gerekir.
integer türünde bir değer kullanıldığında değer baytların
sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri
hakkında bilgiyi bu SSS
altında bulabilirsiniz.
Eğer POST verisinin boyu post_max_size
değerinden büyükse $_POST ve
$_FILES süper küreselleri
boş olur. Bu, çeşitli yollarla izlenebilir; örneğin, veriyi işleyen
betiğe $_GET değişkenini <form
action="edit.php?processed=1"> ile aktararak ve
ardından $_GET['processed'] atanmış mı diye
sınanarak bu yapılabilir.
Bilginize:
PHP bayt değerleri için K (kilo), M (mega) ve G (giga) birim kısaltmalarını kabul eder. Bunları kullanırsanız PHP dönüşümü özdevinimli olarak yapacaktır. 32 bitlik sürümleri kullanıyorsanız, 32 bitlik işaretli tamsayı sınırını aşmamaya dikkat edin, aksi takdirde betiğiniz başarısız olacaktır.
Sürüm: | Açıklama |
---|---|
5.3.4 |
İçerik türü PHP'de tanımlı değilse veya
içerik türü application/x-www-form-urlencoded ise
post_max_size = 0 ataması sınırlamayı iptal
etmez.
|
5.3.2 , 5.2.12 |
post_max_size = 0 ataması POST boyutunu
sınırsız yapar.
|
auto_prepend_file
string
Özdevinimli olarak ana betikten önce çözümlenecek dosyanın ismi belirtilir. Dosya require ile belirtilmiş gibi ana dosyanın başına eklenir; dolayısıyla dosyayı bulmak için include_path kullanılır.
none özel değeri başa dosya eklemeyi iptal eder.
auto_append_file
string
Özdevinimli olarak ana betikten sonra çözümlenecek dosyanın ismi belirtilir. Dosya require ile belirtilmiş gibi ana dosyanın sonuna eklenir; dolayısıyla dosyayı bulmak için include_path kullanılır.
none özel değeri sona dosya eklemeyi iptal eder.
Bilginize: Eğer betik exit() ile sonlanırsa özdevinimli ekleme gerçekleşmez.
default_mimetype
string
Öntanımlı MIME türü. Öntanımlı olarak PHP ortam türünü Content-Type başlığını kullanarak gönderir. Ortam türünün gönderilmesini engellemek için değişkene hiçbir şey atanmamalıdır.
PHP'nin yerleşik öntanımlı ortam türü text/html olarak atanmıştır.
default_charset
string
PHP 5.6 ve sonrasında, "UTF-8" öntanımlı değerdir ve eğer encoding
kullanılmamışsa bu değer
htmlentities(),
html_entity_decode() ve
htmlspecialchars() için öntanımlı karakter kodlaması olarak kullanılır. Ayrıca:
iconv.input_encoding
,
iconv.output_encoding
ve
iconv.internal_encoding
yapılandırma seçeneklerine değer atanmamışsa
default_charset
iconv işlevleri için de
öntanımlı karakter kümesi olur.
mbstring.http_input
,
mbstring.http_output
ve
mbstring.internal_encoding
yapılandırma seçeneklerine değer atanmamışsa
default_charset
mbstring işlevleri için de
öntanımlı karakter kümesi olur.
PHP tarafından gönderilen Content-Type başlığı header() çağrısı ile değiştirilmedikçe PHP'nin tüm sürümlerinde başlıktaki karakter kümesi değeri bu değer olacaktır.
default_charset
seçeneğine boş değer
atanması önerilmez.
input_encoding
string
PHP 5.6.0 ve sonrasında kullanılabilir. Bu değer mbstring ve iconv gibi çokbayt modülleri için kullanılır. Öntanımlı değer boş dizgedir.
output_encoding
string
PHP 5.6.0 ve sonrasında kullanılabilir. Bu değer mbstring ve iconv gibi çokbayt modülleri için kullanılır. Öntanımlı değer boş dizgedir.
internal_encoding
string
PHP 5.6.0 ve sonrasında kullanılabilir. Bu değer mbstring ve iconv gibi çokbayt modülleri için kullanılır. Öntanımlı değer boş dizgedir ve böyle bir durumda default_charset kullanılır.
always_populate_raw_post_data
mixed
Bu özelliğin kullanımı PHP 5.6.0 itibariyle ÖNERİLMEMEKTE olup PHP 7.0.0'da tamamen KALDIRILMIŞTIR.
$HTTP_RAW_POST_DATA değişkeni daima ham POST verisi içerilerek oluşturulur. Aksi takdirde, veri sadece tanınmayan MIME türünde oluşturulur.
Ham POST verisine erişmek için tercih edilen yollar
php://input ve
$HTTP_RAW_POST_DATA PHP 5.6.0 ve sonrasında
önerilmemektedir.
$HTTP_RAW_POST_DATA hiç tanımlanmadığı durumda
always_populate_raw_post_data
için
-1 kullanmak PHP'nin gelecek sürümünde
gerçeklenecek yeni davranış için bir seçenek olacaktır.
Ne atandığına bakılmaksızın $HTTP_RAW_POST_DATA enctype="multipart/form-data" ile kullanılamaz.
Ayrıca bakınız: magic_quotes_gpc, magic_quotes_runtime ve magic_quotes_sybase.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
include_path | ".;/path/to/php/pear" | PHP_INI_ALL | |
open_basedir | NULL | PHP_INI_ALL | PHP < 5.3.0'da PHP_INI_SYSTEM. |
doc_root | NULL | PHP_INI_SYSTEM | |
user_dir | NULL | PHP_INI_SYSTEM | |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM | |
extension | NULL | sadece php.ini | |
zend_extension | NULL | sadece php.ini | |
zend_extension_debug | NULL | sadece php.ini | PHP 5.3.0 öncesinde kullanılabilir. |
zend_extension_debug_ts | NULL | sadece php.ini | PHP 5.3.0 öncesinde kullanılabilir. |
zend_extension_ts | NULL | sadece php.ini | PHP 5.3.0 öncesinde kullanılabilir. |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | PHP 5.2.0 ve sonrasında mevcuttur. |
cgi.discard_path | "0" | PHP_INI_SYSTEM | PHP 5.3.0 ve sonrasında mevcuttur. |
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | PHP 4.3.0 ve sonrasında mevcuttur. PHP 5.2.1 öncesinde PHP_INI_ALL. |
cgi.force_redirect | "1" | PHP_INI_SYSTEM | PHP 4.2.0 ve sonrasında mevcuttur. PHP 5.2.1 öncesinde PHP_INI_ALL. |
cgi.nph | "0" | PHP_INI_SYSTEM | PHP 5.3.0 ve sonrasında mevcuttur. |
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | PHP 4.2.0 ve sonrasında mevcuttur. PHP 5.2.1 öncesinde PHP_INI_ALL. |
cgi.rfc2616_headers | "0" | PHP_INI_ALL | PHP 4.3.0 ve sonrasında mevcuttur. |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP 4.3.0 ve sonrasında mevcuttur. PHP 5.2.1 öncesinde PHP_INI_ALL. |
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP 4.3.0 ve sonrasında mevcuttur. PHP 5.2.1 öncesinde PHP_INI_ALL. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
include_path
string
require, include, fopen(), file(), readfile() ve file_get_contents() işlevleri için dosyaların aranacağı dizinler belirtilir. Dizgenin biçemi sistemin PATH ortam değişkenindeki gibidir: Dizinler Unix'te iki nokta imleriyle, Windows'ta ise noktalı virgüllerle ayrılır.
PHP, dahil edilecek dosyaları include_path
içindeki yollarda her dosya için tek tek sırayla arar. Önce ilk yola
bakar, sonra diğerine, böyle gider. Dosyayı bulursa döner, bulamazsa
bir
uyarı veya bir hata verir.
Bu yönergenin değerini betiğinizin çalışması sırasında
set_include_path() işleviyle değiştirebilirsiniz.
Örnek 1 Unix include_path
include_path=".:/php/includes"
Örnek 2 Windows include_path
include_path=".;c:\php\includes"
Dosya yolu olarak . belirtilmesi çalışılan dizinin arama yollarına dahil edilmesini sağlar. Ancak, dahil edilen her dosyayı PHP'nin daima denetlemesini isterseniz include './dosya' biçemini kullanmak daha iyidir.
Bilginize:
ENV değişkenlerine .ini dosyalarında daima erişilebilmektedir. Dolayısıyla, ${LOGIN} ve ${USER}.kullanarak home dizinine erişmek mümkündür.
Ortam değişkenleri sunucunun çalıştığı sisteme bağlı olarak değişiklik gösterebilir.
Örnek 3 include_path değişkeninde Unix ${USER} ortam değişkeni kullanımı
include_path = ".:${USER}/pear/php"
open_basedir
string
PHP tarafından açılmış dosyaları, dosyanın kendisi de dahil olmak üzere belirtilen dizin ağacı ile sınırlar. Bu yönerge güvenli kipin etkin olup olmamasından etkilenmez.
Örneğin bir betik dosya sistemine erişmeye çalışırsa, örneğin fopen() veya gzopen() ile bir dosya açmaya çalışırsa dosyanın yerine bakılır. Dosya belirtilen dizin ağacının dışındaysa PHP bu dosyayı açmayı reddeder. Tüm sembolik bağlar çözümlenir, dolayısıyla bir sembolik bağ kullanarak bu kısıtlamayı aşmak mümkün değildir. Eğer dosya mevcut değilse sembolik bağ çözümlenemeyeceğinden dosyanın kendisi open_basedir ile karşılaştırılır.
open_basedir dosya sistemi işlevlerinden daha fazlasını etkileyebilir; örneğin, MySQL mysqlnd sürücülerini kullanacak şekilde yapılandırılmışsa LOAD DATA INFILE bu seçenekten etkilenir. PHP'nin gelişkin işlevselliğinin çoğu open_basedir'ı böyle kullanır.
Betiğin çalışma dizinini belirten nokta (.
) özel değeri temel dizini belirtmek
için kullanılabilir. Bunula birlikte, çalışma dizini
chdir() ile kolayca değiştirilebilceğinden bunu
yapmak biraz tehlikelidir.
httpd.conf içinde (örneğin bazı sanal konaklarda), open_basedir yönergesi diğer "php_admin_value open_basedir none" gibi yapılandırma yönergelerinde yapıldığı gibi kapatılabilir.
Windows altında, dizinleri aralarına noktalı virgül konarak belirtilir. Diğer tüm sistemlerde ikinokta imi kullanılır. PHP'nin Apache modülü olarak kullanıldığı durumlarda open_basedir ile belirtilen yollar artık üst dizinlerinden özdevinimli olarak miras alınmaktadır.
PHP 5.2.16 ve 5.3.4'ten beri open_basedir ile belirtilen kısıt bir dizin ismidir. Önceki sürümler bunu bir önek olarak kullanırdı. Örneğin "open_basedir = /dir/incl" ile (mevcut oldukları takdirde) "/dir/include" dizinlerine erişime izin verilir. Belli bir dizine erişimi kısıtlamak istiyorsanız yolun sonuna bir bölü çizgisi ekleyin. Örnek: open_basedir = /dir/incl/
Öntanımlı olarak bütün dosyaların açılmasına izin verilir.
Bilginize:
PHP 5.3.0'dan itibaren open_basedir çalışma anında daha da kısıtlayıcı hale getirilebilmektedir. Örneğin, php.ini içinde open_basedir yönergesinde /siteler/ dizini belirtilmişse çalışma anında ini_set() işlevi kullanılarak kısıtlama /siteler/tmp/ ile daha da daraltılabilir. Çeşitli dizinleri listelerken, işletim sisteminin kısıtlarına aldırmaksızın bir ayraç olarak
PATH_SEPARATOR
sabiti kullanılabilir.
doc_root
string
PHP'nin sunucu üzerindeki kök dizini. Sadece boş olmadığı takdirde
kullanılır. PHP safe_mode
ile yapılandırılmışsa, Bu dizin dışındaki
dosyalar sunulmaz. PHP, FORCE_REDIRECT ile derlenmişse, PHP'yi HTTP
sunucusu altında bir CGI olarak çalıştırıyorsanız
doc_root
yönergesini atamanız
gerekir (IIS hariç). Bunun yerine aşağıdaki
cgi.force_redirect
yapılandırması da kullanılabilir.
user_dir
string
Kullanıcının ev dizininde PHP dosyalarının bulunduğu ana dizin. Örnek: public_html.
extension_dir
string
PHP'nin devingen olarak yüklenebilen eklentileri arayacağı dizin. Ayrıca bakınız: enable_dl ve dl().
extension
string
PHP başlatılırken devingen olarak yüklenecek eklentiler.
zend_extension
string
PHP başlatılırken yüklenecek devingen olarak yüklenebilen Zend eklentisinin ismi (örneğin: APD).
zend_extension_debug
string
Hata ayıklama bilgisi ile derlenmiş eklentiler için PHP5.3.0 öncesinde zend_extension yerine bu yönerge kullanılır.
zend_extension_debug_ts
string
PHP5.3.0 öncesinde evre güvenliği ve hata ayıklama bilgisi ile derlenmiş eklentiler için zend_extension yerine bu yönerge kullanılır.
zend_extension_ts
string
PHP5.3.0 öncesinde evre güvenliği ile derlenmiş eklentiler için zend_extension yerine bu yönerge kullanılır.
cgi.check_shebang_line
boolean
CGI PHP'nin betiklerin başında #! ile başlayan satırın varlığına bakıp bakmayacağını belirler. Betik hem PHP CGI hem de tek başına bir betik olarak çalışabiliyorsa bu satır gerekebilir. PHP, CGI kipinde çalışırken bu satırı atlar, bu yönerge "1" olsa bile satırın içeriği yok sayılır.
cgi.discard_path
boolean
Etkinse, the PHP CGI ikili site ağacının dışına güvenle yerleştirilebilir ve .htaccess güvenliğini kimse atlatamaz.
cgi.fix_pathinfo
boolean
CGI için gerçek PATH_INFO/PATH_TRANSLATED desteği sağlar. PHP'nin önceki davranışı SCRIPT_FILENAME'e PATH_TRANSLATED atamak ve PATH_INFO'yu kaale almamaktı. PATH_INFO hakkında daha ayrıntılı bilgi edinmek için CGI belirtimine bakınız. Bu yönergeye 1 atamakla PHP CGI'nin CGICGI belirtimine uygun olarak dosya arama yollarını düzeltmesi sağlanmış olur. Sıfır atandığında ise PHP'nin önceki davranışı etkin olur. Öntanımlı değer sıfırdır. Betiklerinizi PATH_TRANSLATED değil SCRIPT_FILENAME kullanması için düzeltmelisiniz.
cgi.force_redirect
boolean
PHP'nin çoğu HTTP sunucusunda bir CGI olarak çalışmasının güvenli olmasını sağlamak için bu yönerge gereklidir. Tanımsız bırakılmışsa PHP öntanımlı olarak yönergeyi etkin kılar. Bu yönergeyi etkisiz bırakmakla kendinizi riske atmış olursunuz.
Bilginize:
Windows Kullanıcılarına: IIS kullanıyorsanız buna rahatça sıfır atayabilirsiniz ve hatta bunu yapmalısınız. Bu, OmniHTTPD veya Xitami'nin çalışması için de yapılmalıdır.
cgi.nph
boolean
Etkinse, cgi'nin her isteğe mutlaka Status: 200 göndermesini sağlar.
cgi.redirect_status_env
string
cgi.force_redirect
yönergesine 1 atanmışsa ve
Apache veya Netscape (iPlanet) HTTP sunucularını kullanmıyorsanız,
PHP'nin çalışmaya devam edebileceği bilgisini almak için bakacağı
bir ortam değişkeni ismini bu yönergeye atamanız
gerekebilir.
Bilginize:
Ne yaptığınız konusunda bir fikriniz yoksa bu yönergeye bir isim atamak güvenlikle ilgili sorunlara yol açabilir.
cgi.rfc2616_headers
int
HTTP yanıt kodu gönderilirken hangi başlık türlerinin kullanılacağını belirler. 0 atanırsa PHP, Apache ve diğer HTTP sunucuları tarafından desteklenen bir » RFC 3875 Status: başlığı gönderir. 1 atanırsa PHP, » RFC 2616 uyumlu başlıklar gönderir.
Bu seçenek etkinse ve PHP'yi bir CGI ortamında kullanıyorsanız (PHP-FPM gibi), standard RFC 2616 tarzı HTTP durum yanıt başlıklarını değil, onların RFC 3875 eşdeğerlerini kullanmalısınız. Örneğin header("HTTP/1.0 404 Not found"); değil, header("Status: 404 Not Found"); kullanmalısınız.
Ne yapıldığı hakkında bir fikriniz yoksa bu yönergeyi 0 değeriyle bırakın.
fastcgi.impersonate
string
IIS (WINNT temelli sistemlerde) altında FastCGI, çağrı yapan istemcinin güvenlik dizgeciklerinin taklit edilmesi yeteneğini destekler. Bu, IIS'ye isteğin altında çalıştığı güvenlik bağlamını tanımlama izni verir. Apache'nin mod_fastcgi modülü bu özelliği desteklemez (17-03-2002). IIS altında çalışılıyorsa yönergeye 1 atayın. Öntanımlı değer sıfırdır.
fastcgi.logging
boolean
Turns on SAPI logging when using FastCGI kullanırken SAPI oturum açma etkin olur ve bu öntanımlı durumdur.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
file_uploads | "1" | PHP_INI_SYSTEM | PHP <= 4.2.3'te PHP_INI_ALL. PHP 4.0.3 ve sonrasında mevcuttur. |
upload_tmp_dir | NULL | PHP_INI_SYSTEM | |
max_input_nesting_level | 64 | PHP_INI_PERDIR | PHP 5.3.9'dan beri kullanılabilmektedir. |
max_input_vars | 1000 | PHP_INI_PERDIR | PHP 5.3.9'dan beri kullanılabilmektedir. |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. |
max_file_uploads | 20 | PHP_INI_SYSTEM | PHP 5.2.12'den beri kullanılabilmektedir. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
file_uploads
boolean
HTTP üzerinden karşıya dosya yüklemeye izin verilip verilmeyeceğini belirler. Ayrıca, upload_max_filesize, upload_tmp_dir ve post_max_size yönergelerine de bakınız.
upload_tmp_dir
string
Karşıya dosya yüklenirken dosyaların geçici olarak saklanacağı dizin. Dizinin, PHP'yi çalıştıran kullanıcı tarafından yazılabilir olması gerekir. Bir dizin belirtilmezse PHP sistem öntanımlısını kullanır.
upload_max_filesize
integer
Karşıya yüklenecek dosyalar için azami boyut.
integer türünde bir değer kullanıldığında değer baytların sayısıdır. Büyük bayt değerleri için kullanılabilecek birimlerin gösterimleri hakkında bilgiyi bu SSS altında bulabilirsiniz.max_file_uploads
integer
Aynı anda karşıya yüklenebilecek azami dosya sayısı.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
sql.safe_mode | "0" | PHP_INI_SYSTEM |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
sql.safe_mode
boolean
On değeri atandığında, öntanımlı değerler belirtilmiş veritabanı bağlantı işlevleri kullanıcı tarafından sağlanan değiştirgelerin yerine bu değerleri kullanacaktır. Öntanımlı değerlerin neler olduğunu görmek için ilgili veritabanının bağlantı işlevleri belgelerine bakınız.
İsim | Öntanımlı | Değişlik Yeri | Sürüm Bilgisi |
---|---|---|---|
windows.show_crt_warning | "0" | PHP_INI_ALL | PHP 5.4.0'dan beri kullanılabilmektedir. |
Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.
windows.show_crt_warning
boolean
Etkin olduğunda Windows CRT uyarılarını gösterir. PHP 5.4.0'a kadar bu uyarılar öntanımlı olarak gösterilirdi.