Yapılandırma Dosyası
Yapılandırma dosyası (php.ini) PHP başlatıldığında okunur. PHP'nin
sunucu modülü sürümlerinde bu işlem bir kereliğine HTTP sunucusu
başlatıldığında gerçekleşir. CGI ve
CLI sürümlerinde ise PHP'nin her çağrılışında işlem
tekrarlanır.
php.ini sırasıyla şuralarda aranır:
-
SAPI modülüne özgü konum (Apache 2'de PHPIniDir
yönergesi, CGI ve CLI için -c
komut satırı seçeneği,
NSAPI'de php_ini
değiştirgesi)
-
PHPRC ortam değişkeni.
-
php.ini
dosyasının konumu
PHP'nin farklı sürümleri için ayarlanabilmektedir. Kayıt defteri
anahtarlarının kökü, kurulu işletim sistemi ve PHP'nin 32 veya 64 bit
oluşuna bağlıdır. 32 bit işletim sisteminde 32 bit PHP veya 64 bit
işletim sisteminde 64 bit PHP için [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP],
64 bit işletim sisteminde 32 bit PHP sürümü için bunu yerine
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]] kullanın. Aynı bitlik
kurulum için kayıt defteri anahtarları aşağıdaki sırayla incelenir:
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z]
,
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y]
ve
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x]
.
Burada x, y ve z harfleri PHP'nin ana, alt ve yama sürümlerini
belirtir. 64 bit işletim sisteminde PHP'nin 32 bit sürümleri için kayıt
defteri anahtarları aşağıdaki sırayla incelenir:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z]
,
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y]
ve
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x]
.
Burada x, y ve z harfleri PHP'nin ana, alt ve yama sürümlerini
belirtir. Bu anahtarlarda bir IniFilePath
değeri
varsa ilk bulunan php.ini
konumu kullanılır
(sadece Windows).
-
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]
or
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]
anahtarının \IniFilePath
değeri (sadece Windows).
-
Geçerli çalışma dizini (CLI dışında)
-
HTTP sunucusunun dizini (SAPI modülleri için) veya PHP dizini
(Windows için)
-
Windows dizini (C:\windows
veya C:\winnt) (Windows için)
veya --with-config-file-path
derleme seçeneği ile
belirtilen dizin.
php-SAPI.ini mevcutsa (burada SAPI, kullanılan
SAPI'dir, dolayısıyla php-cli.ini veya
php-apache.ini gibi bir dosya ismidir), php.ini
yerine bu dosya kullanılır. SAPI ismi php_sapi_name()
işlevi ile saptanabilir.
Bilginize:
Apache HTTP sunucusunun başlatıldığında kök dizine geçmesi PHP'nin
php.ini dosyasını dosya sisteminin kök dizininde aramasına sebep olur.
php.ini içinde kullanılabilen ortam değişkenlerinin kullanımı aşağıda gösterilmiştir.
Örnek 1 - php.ini Ortam Değişkenleri
; PHP_MEMORY_LIMIT'in ortamdan alınışı
memory_limit = ${PHP_MEMORY_LIMIT}
php.ini yönergelerinin eklentilerle ilgili olanlarının belgeleri her
eklentinin kendi belgeleri içindedir. Temel
yönergelerin listesini eklerde bulabilirsiniz. Tamamı olmasa da
yönergelerin büyük çoğunluğu kılavuzda belgelenmiş durumdadır. Kurulu PHP
sürümünüzde geçerli yönergelerin tam listesi için kendi içinde iyi
açıklanmış php.ini dosyanızı okuyun. Ayrıca, Git'te bulunan » en son php.ini dosyası da bu
konuda size yardımcı olabilir.
Örnek 2 - php.ini örneği
; bir noktalı virgülden (;) sonra gelen tüm metin parçaları yok sayılır
[php] ; bölüm imleyiciler de (köşeli ayraç içindeki metinler) yok sayılır
; Mantıksal değerler için şu değerlerden herhangi biri kullanılabilir:
; true, on, yes
; false, off, no, none
register_globals = off
track_errors = yes
; Dizgeleri çift tırnak imlerinin arasında belirtebilirsiniz
include_path = ".:/usr/local/lib/php"
; tersbölü karakterleri diğer karakterler gibi ele alınır
include_path = ".;c:\php\lib"
.ini dosyalarında bulunan yönergelere isimleriyle değişken olarak
erişilebilir. Örnek:
open_basedir = ${open_basedir} ":/new/dir"
.
Tarama Dizinleri
PHP'yi, php.ini'yi okuduktan sonra bir dizindeki .ini dosyalarını
tarayacak şekilde yapılandırmak mümkündür. Bu,
--with-config-file-scan-dir seçeneği
ayarlanarak derleme sırasında yapılabilir. Tarama
dizini daha sonra çalışma anında PHP_INI_SCAN_DIR ortam
değişkeni ayarlanarak geçersiz kılınabilir.
Birden fazla dizini platforma özgü yol ayırıcıyla ayırarak taramak
mümkündür (Windows, NetWare ve RISC OS için ;
diğer
tüm platformlarda :
kullanılır. PHP'nin kullandığı
değer PATH_SEPARATOR
sabiti olarak mevcuttur).
PHP_INI_SCAN_DIR'de boş bir dizin verilmişse,
PHP ayrıca derleme sırasında
--with-config-file-scan-dir seçeneği
ile verilen dizini de tarayacaktır.
PHP her dizinde, PHP .ini
uzantılı tüm dosyaları
alfabetik sırayla tarar. php_ini_scanned_files()
işlevi ile veya PHP'yi --ini seçeneğiyle çalıştırarak
yüklenen dosyaların bir listesi ve sırası elde edilebilir.