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. Ya dosyayı bulur ya da
bir E_WARNING
veya bir
E_ERROR
ile döner.
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 otomatik olarak miras alınmaktadır.
open_basedir
ile belirtilen kısıt bir önek
değil bir dizin ismidir.
Öntanımlı olarak bütün dosyaların açılmasına izin verilir.
Bilginize:
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.
Bilginize:
open_basedir kullanımırealpath_cache_size seçeneğine 0
atar,
dolayısıyla realpath önbelleği iptal olur.
-
doc_root
string
-
PHP'nin sunucu üzerindeki kök dizini. Sadece boş olmadığı takdirde
kullanılır. 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_ini.cache_ttl
int
-
-
user_ini.filename
string
-
-
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 dinamik olarak yüklenebilen eklentileri arayacağı dizin.
Ayrıca bakınız: enable_dl ve
dl().
-
extension
string
-
PHP başlatılırken dinamik olarak yüklenecek eklentiler.
-
zend_extension
string
-
PHP başlatılırken yüklenecek dinamik olarak yüklenebilen Zend
eklentisinin ismi (örneğin XDebug).
-
cgi.check_shebang_line
bool
-
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
bool
-
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
bool
-
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
bool
-
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
bool
-
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.
-
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
bool
-
Turns on SAPI logging when using FastCGI kullanırken SAPI oturum açma
etkin olur ve bu öntanımlı durumdur.