PHP 5.6.0 released

Temel php.ini yönergelerinin tanımları

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.

Httpd Options

HTTPd Seçenekleri
İsim Öntanımlı Değişlik Yeri Sürüm Bilgisi
async_send "0" PHP_INI_ALL  

Dil Seçenekleri

Dil ve Çeşitli Yapılandırma Seçenekleri
İsim Öntanımlı Değişlik Yeri Sürüm Bilgisi
short_open_tag "1" PHP_INI_ALL PHP 4.0.0'da PHP_INI_ALL. PHP < 5.3.0'da PHP_INI_PERDIR
asp_tags "0" PHP_INI_PERDIR PHP 4.0.0'da PHP_INI_ALL.
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 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.signal_check "0" PHP_INI_SYSTEM PHP 5.4.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. Bu kullanımı önerilmeyen özellik gelecekte kesinlikle KALDIRILACAKTIR.

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çin short_open_tag yönergesinin değeri 1 olmalıdır.

asp_tags boolean
Normal <?php ?> etiketlerine ek olarak ASP tarzı <% %> etiketlerinin kullanımını etkin kılar. Bu yönerge, değişken değerli yazdırma kısaltmasını da (<%= $değer %>) etkiler. Daha ayrıntılı bilgi için HTML'den Kaçmak bölümüne bakınız.
precision integer
Gerçek sayılarda ondalık noktadan sonraki anlamlı hane sayısı.
serialize_precision integer
Gerçek sayılar dizgileştirilirken saklanan ondalık noktadan sonraki anlamlı hane sayısı.
y2k_compliance boolean
2000 yılı uyumluluğunu uygular (uyumsuz tarayıcılarda sorun çıkarır)
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.

allow_call_time_pass_reference için değişiklik geçmişi
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 logo guid'leri ayrıca ilan edilir; sitenin URL'sine eklemek suretiyle ilgili logo gösterilir. Bu ayrıca phpinfo() çıktısını da etkiler ve iptal edildiği zaman olduğu gibi PHP logosu ve bazı bilgiler gösterilmez.

Ayrıca bakınız: php_logo_guid() ve phpcredits().

disable_functions string
Bu yönerge güvenlik ile ilgili sebeplerle belli işlevleri iptal etmeye yarar. İşlev isimleri aralarına virgül konarak belirtilir. Bu yönerge güvenli kipte etkili değildir.

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
Bu yönerge güvenlik ile ilgili sebeplerle belli sınıfları iptal etmeye yarar. Sınıf isimleri aralarına virgül konarak belirtilir. Bu yönerge güvenli kipte etkili değildir. Bu yönerge sadece php.ini içinde atanabilir. Örneğin httpd.conf dosyasında tanımlayamazsınız.

Bilginize: Kullanılabilirlik bilgisi
Bu yönerge PHP 4.3.2'dan itibaren kullanılabilir.

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.

Uyarı

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.

zend.script_encoding string

Betiğin tepesinde declare(encoding=...) yönergesi görünmediği takdirde bu değer kullanılır.

zend.signal_check boolean

Sistemin kapanması sırasında sinyal eylemcilerinin yerlş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.

Özkaynak Sınırları

Özkaynak Sınırları
İ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.

Başarım Arttırma

Başarım Arttırma
İ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.

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.

Veri İşleme

Veri İşleme Seçenekleri
İsim Öntanımlı Değişlik Yeri Sürüm Bilgisi
track_vars "On" PHP_INI_??  
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ı
post_max_size "8M" PHP_INI_PERDIR PHP <= 4.2.3'te PHP_INI_SYSTEM. PHP 4.0.3 ve sonrasında mevcuttur.
gpc_order "GPC" PHP_INI_ALL  
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  
always_populate_raw_post_data "0" PHP_INI_PERDIR PHP <= 4.2.3'te PHP_INI_ALL. PHP 4.1.0 ve sonrasında mevcuttur.
allow_webdav_methods "0" PHP_INI_PERDIR  

Yapılandırma yönergelerinin kısa açıklamalarını aşağıda bulabilirsiniz.

track_vars boolean

Etkin kılınırsa Ortam, GET, POST, Çerez ve Sunucu değişkenleri $_ENV, $_GET, $_POST, $_COOKIE ve $_SERVER küresel ilişkisel dizilerinde bulunabilir.

PHP 4.0.3 ve sonrasında, track_vars daima on değerine sahiptir.

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.

Uyarı

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.

Uyarı

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.

Uyarı

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
PHP'nin, (GET bilgisini içeren) argv ve argc değişkenlerini bildirip bildirmeyeceğini belirler. Komut satırı bölümüne de bakınız. Bu yönerge PHP 4.0.0'dan itibaren kullanılabilir hale geldi ve daha önce değeri daima "on" idi.
register_long_arrays boolean
PHP'nin kullanımı artık önerilmeyen $HTTP_*_VARS türü uzun önceden tanımlanmış değişkenleri yazmaç haline getirip getirmeyeceğini belirler. Değeri 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.
Uyarı

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
Bu seçeneğin iptali $_POST ve $_FILES verilerinin toplanmamasına sebep olur. Post verisini okumanın tek yolu php://input akım sarmalayıcısı kullanmak olacaktır. POST verisini işlerken bellek tasarrufu yapmak veya isteklere vekalet etmek için kullanışlıdır.
post_max_size integer
POST verisinin azami boyutunu belirler. Bu ayar ayrıca karşıya dosya yükleme işlemlerini de etkiler. Büyük dosyaları karşıya yüklemek için bu değerin upload_max_filesize değerinden büyük olması gerekir. Bellek sınırlama yapılandırma betiğinde etkin kılınmışsa, memory_limit yönergesi de karşıya dosya yüklemeyi etkiler. Genelde, memory_limit değerinin 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 bit 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.

gpc_order string

GET/POST/COOKIE değişken çözümleme sırasını belirler. Yönergenin öntanımlı değeri "GPC"'dir. Örneğin "GP" değerini atamak, PHP'nin çerezleri tamamen yoksaymasına sebep olacak ve GET yönteminin değişkenleri aynı isimdeki POST yönteminin değişkenlerinin üzerine yazacaktır.

Bilginize:

Bu yönerge PHP 4'te yoktur. Yerine variables_order yöregesini kullanın.

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ü.

default_charset string

PHP, Content-type: başlığında öntanımlı olarak bir karakter kodlaması çıktılar. Karakter kümesi gönderimini iptal etmek için yönergeye boş dizge ("") atamak yeterlidir.

always_populate_raw_post_data boolean

$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. Bununla birlikte, ham POST verisine erişmek için tercih edilen yol php://input'tur. $HTTP_RAW_POST_DATA, enctype="multipart/form-data" ile kullanılamaz.

allow_webdav_methods boolean

WebDAV http isteklerinin PHP betikleri içinde elde edilmesine izin verir (PROPFIND, PROPPATCH, MOVE, COPY, vs.). Bu yönerge PHP 4.3.2'de kullanımdan kaldırılmıştır. POST verisini bu isteklerden almak isterseniz always_populate_raw_post_data yönergesini de etkin kılmalısınız.

Ayrıca bakınız: magic_quotes_gpc, magic_quotes_runtime ve magic_quotes_sybase.

Dosya Yolları ve Dizinler

Dosya Yolları ve Dizinler için Yapılandırma seçenekleri
İ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.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.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.

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, 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.

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 mutlak yolu (ö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.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.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 Status: başlığı gönderir. 1 atanırsa PHP, » RFC 2616 uyumlu başlıklar gönderir. 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.

Karşıya Dosya Yükleme

Karşıya Dosya Yükleme Yapılandırma seçenekleri
İ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.

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.
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ı.

Genel SQL

Genel SQL Yapılandırma Seçenekleri
İ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 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.

Windows'a Özel

Windows'a Özel Yapılandırma Seçenekleri
İ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.

add a note add a note

User Contributed Notes 15 notes

up
4
david dot tulloh at infaze dot com dot au
9 years ago
I did a little experimentation on the behaviour of auto_prepend_file as the order of access wasn't clear to me from the documentation.

1. Apache checks to see if the target file exists.
2. The prepend file is called
3. The target file is called

This means that you can use auto_prepend_file to change the target file before you access it however you can't generate new files.
up
1
txyoji at yahoo dot com
9 months ago
If you enable "open_basedir" option, it will disable the realpath_cache. This can be a significant performance hit.

https://bugs.php.net/bug.php?id=53263
up
2
leo at korfu dot cz
8 years ago
"If the size of post data is greater than post_max_size..."

It seems that a more elegant way is comparison between post_max_size and $_SERVER['CONTENT_LENGTH']. Please note that the latter includes not only size of uploaded file plus post data but also multipart sequences. Leo
up
1
amolitor at molitor-design dot com
4 years ago
Amusingly, the include_path logically includes the current directory of the running file as the last entry all the time anyways, so part of the business about shoving "." into the include_path is spurious -- it's "there" on the end all the time, at least in the 5.2.12 source (see main/fopen_wrappers.c around line 503).

This one had me goin' for a while.
up
1
csg at DEL_THISdiatom dot de
8 years ago
Starting with PHP 4.4.0 (at least PHP version 4.3.10 did have old, documented behaviour) interpretation of value of "session.save_path" did change in conjunction with "save_mode" and "open_basedir" enabled.

Documented ( http://de.php.net/manual/en/ref.session.php#ini.session.save-path ):
  Values of "session.save_path" should or may be  **without**  ending slash.
  For instance:
<?php
 
// Valid only  *before* PHP 4.4.0:
 
ini_set( "session.save_path", "/var/httpd/kunde/phptmp" );
?> will mean:
  The directory "/var/httpd/kunde/phptmp/" will be used to write data and therefore must be writable by the web server.

Starting with PHP 4.4.0 the server complains that "/var/httpd/kunde/" is not writable.
Solution: Add an ending slash in call of ini_set (or probably whereever you set "session.save_path"), e.g.:
<?php
 
// Note the slash on ".....phptmp/":
 
ini_set( "session.save_path", "/var/httpd/kunde/phptmp/" );
?>

Hope, that does help someone.
up
0
kghbln
2 years ago
Adding multiple directories to open_basedir:

open_basedir = "/var/www/htdocs/:/var/www/tmp/" adds both paths /var/www/htdocs/ and /var/www/tmp/. Do not forget the trailing slash, otherwise the last directory will be considered as a prefix (< 5.3.4).

On Windows you use ; as the seperator.
up
0
rlammers at linuxmail dot org
3 years ago
This is a possible solution for a problem which seems to be a php-ini-problem but is not.

If a $_POST is used with large fields e.g. textarea's with more than 120kb characters php returns a blank screen, even if the max_post_size is 8M.

This problem may be caused by an apache-module SecFilter.

Adding the following lines to the .htaccess solves the problem.
SecFilterEngine Off
SecFilterScanPOST Off

I know this is not a php-issue, but i'm still posting it here since it looks like it is a php-problem and I did not find any sites or forums offering this solution.
up
-1
AntonioK
3 years ago
Note that there is no way to disable eval() work by using disable_functions directive, because eval() is a language construct and not a function.

Many people advise to disable such potentially-insecure functions like system(), exec(), passthru(), eval() and so on in php.ini when not running in safe mode, but eval() would still work even it listed in disable_functions.
up
-1
lanny at freemail dot hu
7 years ago
register_long_arrays has a very odd behavior (at least in PHP 5.2):

With register_long_arrays=Off the $GLOBALS array will not contain [_SERVER] and [_REQUEST]. They are accessible as superglobals ($_SERVER, $_REQUEST), but they disappear from the $GLOBALS array!
up
-1
mrok at mrok dot com
5 years ago
Note that on some Unix systems (i.e. PHP 5.1.6 on Centos 5.2) include_path in php.ini should NOT be quoted.

For example, instead of

include_path='.:/usr/share/php'

use

include_path=.:/usr/share/php

Using quotes does not cause any error message, but all of your require_once() directives will fail (indicating that file could not be opened) - unless full path to target file is provided.
up
-1
iko at vision dot sk
2 years ago
auto_globals_jit setting is also affecting $_REQUEST superglobal in 5.3 It is not explicitly stated in documentation.
up
-2
michael dot buergi at gmx dot net
1 year ago
the ini-setting "detect_unicode" is indeed "zend.detect_unicode" (according to the phpinfo of my 5.4.4)
up
-6
Manu
9 years ago
Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.
up
-8
Steven Hartland
1 year ago
default_charset doesn't always set the charset for all content types, it appears to only do so for some known ones such as text/html.

If your using other content type's ensure you set the charset manually.

Tested on php 5.3.10 with application/json
up
-10
JL
2 years ago
If you need to use a path in your include_path that has a space in it - I found that I could make it work (in windows anyway) by setting a path like this
L:\Information Technology\Resources\lib\
in the include path like this listed below

include_path = ".;L:\Information" " Technology\Resources\lib\"
To Top