downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

.user.ini dosyaları> <Çalışma Anı Yapılandırması
[edit] Last updated: Fri, 23 Mar 2012

view this page in

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, THTTPD'de PHP_INI_PATH ortam değişkeni)

  • PHPRC ortam değişkeni. PHP 5.2.0 öncesinde aşağıda bahsedilen kayıt defteri anahtarından sonra bu değişkene bakılırdı.

  • PHP 5.2.0'dan itibaren, PHP'nin farklı sürümlerine ait php.ini dosyaları için Windows kayıt defterinde sırayla aşağıdaki yerlere bakılmaktadır: [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. Bu anahtarlarda bir IniFilePath değeri varsa ilk bulunan php.ini konumu kullanılır.

  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] anahtarının \IniFilePath değeri. (Windows Kayıt Defteri kaydı)

  • 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 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, SVN'de bulunan » en son php.ini dosyası da bu konuda size yardımcı olabilir.

Örnek 1 - 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"

PHP'nin 5.1.0 sürümünden beri .ini dosyalarında bulunan yönergelere isimleriyle değişken olarak erişilebilmektedir. Örnek: open_basedir = ${open_basedir} ":/new/dir".



add a note add a note User Contributed Notes Yapılandırma Dosyası
Hayley Watson 08-May-2010 03:53
"Since PHP 5.1.0, it is possible to refer to existing .ini variables from within .ini files."

If you have several configurations that you switch between (say development/testing/staging), or there is some other reason why several settings scattered through the .ini file might need to be changed all together on occasion, then combining this with a custom block can bring all the bits that need changing into one place:

[Customization]
custom.mode = "development"
custom.display_errors = "on"
custom.error_reporting = 30719

[PHP]
;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
....

And then refer to these variables in the rest of the file:

custom.session.save_path = "/tmp/"${custom.mode}

Bringing all the changes into one location in the file is often of immense benefit.

---

Unfortunately, variable names cannot (yet) be nested. Otherwise one could have one .ini file with several customisation blocks, and a single variable to choose which set of variables to use:

[Customization]
custom.mode = "development"

[Customization Development]
custom.development.display_errors = on

[Customization Production]
custom.development.display_errors = off

...

display_errors = ${custom.${custom.mode}.display_errors}
prjorgen at gmail dot com 06-Apr-2009 01:42
Something to note which is not well documented is that when you are specifying the path, it is JUST the path that is needed - not the path and filename. In the registry locations, you need to just put the folder path (e.g. C:\PHP\) and not the full path to the INI file (e.g. C:\PHP\php.ini). This will particularly save you some headaches if you are trying to run multiple versions of PHP on one server!

 
show source | credits | stats | sitemap | contact | advertising | mirror sites