For 'short_open_tag',
though it is marked as PHP_INI_ALL in changable column,
you should note the CHANGE_LOG column also:
PHP_INI_ALL in PHP <= 4.0.0.
PHP_INI_PERDIR in PHP < 5.3.0
So as of 4.0, it will not work if you wanna use
ini_set('short_open_tag') to change it's value on the fly.
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 Seçenekleri
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| async_send | "0" | PHP_INI_ALL |
Dil Seçenekleri
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| 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 | |
| y2k_compliance | "1" | PHP_INI_ALL | |
| allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP <= 4.0.0'da PHP_INI_ALL. |
| expose_php | "1" | sadece php.ini | |
| zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | PHP 5.0.0 ve sonrasında mevcuttur. PHP 5.3.0'da kaldırıldı. |
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_tagyönergesinin değeri 1 olmalıdır.
- 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ı.
- 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ı PHP 5.3.0'dan itibaren önerilmemekte olup PHP/Zend'in ileri sürümlerinde kaldırılabilir. 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.
- expose_php boolean
-
PHP'nin kurulu olduğu sunucuda (imzasını HTTP sunucusunun başlığına eklemek suretiyle) kendini karşıya gösterip göstermeyeceğini belirler. Bu güvenlikle ilgili bir konu değildir, tamamen sunucunuzda PHP kullanıp kullanmayacağınızla ilgilidir.
- 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.
Özkaynak Sınırları
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| 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. Bu ayrıca, memory_get_usage() ve memory_get_peak_usage() işlevlerini tanımlamak için de 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
Ayrıca bakınız: max_execution_time.
Başarım Arttırma
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| 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
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| 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. |
| 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 6.0.0'da kaldırılmıştır. |
| 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_varsdaimaondeğ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 (PHP 6.0.0'da kaldırılmıştır) 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.
- 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_globalskullanımı adlı güvenlik bölümünü okuyunuz.register_globalsyö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_globalsyönergesi variables_order yönergesinden etkilenir.
UyarıBu özelliğin kullanımı PHP 5.3.0'dan beri ÖNERİLMEMEKTEDİR ve PHP 6.0.0'da tamamen KALDIRILACAKTIR. Bu özelliğe kesinlikle güvenmemelisiniz.
- 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
onolduğ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. Bu yönerge PHP 5.0.0'da kullanılabilir hale gelmiştir.UyarıBu özelliğin kullanımı PHP 5.3.0'dan beri ÖNERİLMEMEKTEDİR ve PHP 6.0.0'da tamamen KALDIRILACAKTIR. Bu özelliğe kesinlikle güvenmemelisiniz.
- 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
-
4.0.0 ve sonrasında, 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
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| include_path | ".;/path/to/php/pear" | PHP_INI_ALL | |
| 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 | |
| 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. |
| fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP 4.3.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. |
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_pathinclude_path=".:/php/includes"
Örnek 2 Windows
include_pathinclude_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.
- doc_root string
-
PHP'nin sunucu üzerindeki kök dizini. Sadece boş olmadığı takdirde kullanılır. PHP
safe_modeile 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.
- 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 CGI 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.
- 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.
- 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.
Karşıya Dosya Yükleme
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| 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 | |
| upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP <= 4.2.3'te PHP_INI_ALL. |
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
Genel SQL
| İsim | Öntanımlı | Değişebilir | Değişiklik Güncesi |
|---|---|---|---|
| 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
-
1 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.
php.ini yönergelerinin tanımları
06-Aug-2009 07:14
22-Mar-2009 04:29
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.
10-Feb-2009 04:12
When display_errors is off, PHP will send an HTTP 500 result header on a fatal error. This is usefull when working with AJAX applications.
19-Nov-2008 04:54
A handy trick to pick up parse errors in test_file.php if you can't set display_errors in php.ini or use .htaccess:
<?php
error_reporting (E_ALL);
ini_set ('display_errors', true);
include('./test_file.php');
?>
09-Apr-2008 11:31
"post_max_size"
"[..]This can be tracked in various ways, e.g. by passing the $_GET variable to the script processing the data, i.e. <form action="edit.php?processed=1">, and then checking if $_GET['processed'] is set."
using PHP 4.4.8 it seems that only the $_POST array will be empty in case of the file is largen than post_max_size.
so above mentioned method does not work in my case.
i need to use $_POST['processed'] instead of $_GET['processed']
11-Mar-2008 02:17
If you are having trouble getting the auto_prepend_file to work with the command line interface make sure that you have set it in the cli specific php.ini and that the read permission is set correctly for that php.ini file.
03-Dec-2007 06:52
If you want to display the upload limit without knowing the server configuration, this may be useful:
<?php
function let_to_num($v){ //This function transforms the php.ini notation for numbers (like '2M') to an integer (2*1024*1024 in this case)
$l = substr($v, -1);
$ret = substr($v, 0, -1);
switch(strtoupper($l)){
case 'P':
$ret *= 1024;
case 'T':
$ret *= 1024;
case 'G':
$ret *= 1024;
case 'M':
$ret *= 1024;
case 'K':
$ret *= 1024;
break;
}
return $ret;
}
$max_upload_size = min(let_to_num(ini_get('post_max_size')), let_to_num(ini_get('upload_max_filesize')));
echo "Maximum upload file size is ".($max_upload_size/(1024*1024))."MB.";
?>
Do note however that this limit is not completely reliable; there are other factors which need to be taken into account, such as any other $_POST data and their size, the memory limit, and the script time limit. This does, however, give some rough limit, and helps you avoid "Doh!" problems where you can't figure out why your file won't upload. :)
26-Jun-2007 11:03
While the manual says that the file specified by auto_prepend_file is included as if it were called by include(), in fact the file is included as if it were called by require().
In other words, if PHP cannot find the file that you specify with auto_prepend_file, it will throw a fatal error.
25-Dec-2006 11:05
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!
19-Dec-2006 06:38
to make sure that all requests use SSL you can use this in a file that is set for auto_prepend_file. This ensures that all requests are SSL
<?php
if(empty($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on' )
header("Location: https://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}") and exit();
?>
24-Jul-2006 02:28
I wish the documentation was more clear as to whether the arg_separator.output character is automatically encoded when PHP outputs it. In other words, is "&" valid or do I need to specify the encoded character "&"? It would make sense to specify only "&" and hope that it is encoded as needed. That way the value could be read by other functions and encoded only when output to HTML, rather than having to test whether it is already encoded and decode it when necessary (for header redirection for example)
29-May-2006 10:45
"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
02-Sep-2005 09:55
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.
27-Jul-2005 12:02
Warning, if you change upload_max_filesize, please note that both post_max_size and memory_limit directives may have to change too.
27-Jun-2005 01:19
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.
09-Jun-2005 08:05
Please be mindful, that if you plan on re-configuring / recompiling to add --enable-memory-limit support, you may need to run a 'make clean' before you run 'make'. Otherwise, you may end up with a phpinfo() that shows up with --enable-memory-limit as a configure parameter, but the memory_get_usage() function will still force a fatal error.
