PHP配置文件是Web開發(fā)中一個(gè)非常重要的組成部分。它是一種用于配置PHP服務(wù)器的專用文件,它指定了PHP代碼的屬性和行為以及PHP服務(wù)器的一些設(shè)置。其中,php.ini是PHP服務(wù)器的主配置文件,它為整個(gè)服務(wù)器設(shè)置PHP的全局選項(xiàng)。而php_ini_perdir則是一個(gè)特殊的選項(xiàng),它允許在每個(gè)目錄下設(shè)置不同的PHP選項(xiàng)。
為了更好的理解php_ini_perdir,下面舉幾個(gè)例子。假設(shè)我們的項(xiàng)目分為前臺(tái)和后臺(tái)兩個(gè)部分,它們擁有相同的代碼庫,但是它們的代碼行為有所不同。比如,前臺(tái)頁面需要具有更好的性能和響應(yīng)速度,而后臺(tái)頁面需要更好的調(diào)試和錯(cuò)誤報(bào)告機(jī)制。這時(shí)候我們就需要在每個(gè)目錄下為前臺(tái)和后臺(tái)部分設(shè)置不同的PHP選項(xiàng)了。
// 前臺(tái)目錄下的php.ini error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED display_errors = Off max_execution_time = 30 memory_limit = 64M
// 后臺(tái)目錄下的php.ini error_reporting = E_ALL display_errors = On max_execution_time = 60 memory_limit = 128M
在上面的例子中,我們?cè)谇芭_(tái)目錄下的php.ini中關(guān)閉了錯(cuò)誤提示、調(diào)整了最大執(zhí)行時(shí)間和內(nèi)存限制,而在后臺(tái)目錄的php.ini中開啟了錯(cuò)誤提示、增加了最大執(zhí)行時(shí)間和內(nèi)存限制。這樣就可以實(shí)現(xiàn)前臺(tái)和后臺(tái)部分的不同需求。
除了在分離的目錄中使用,php_ini_perdir還可以在不同的虛擬主機(jī)環(huán)境中使用。假設(shè)我們的公司從事多個(gè)不同領(lǐng)域的業(yè)務(wù),我們需要為不同領(lǐng)域的公司提供不同的Web服務(wù),它們需要不同的PHP選項(xiàng)。這時(shí)我們可以使用php_ini_perdir來為每個(gè)虛擬主機(jī)設(shè)定不同的PHP選項(xiàng),比如不同的PHP版本、不同的內(nèi)存限制等。
// abc.com虛擬主機(jī)的php.ini error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED display_errors = Off max_execution_time = 30 memory_limit = 64M
// xyz.com虛擬主機(jī)的php.ini error_reporting = E_ALL display_errors = On max_execution_time = 60 memory_limit = 128M
在上述例子中,我們可以給每個(gè)虛擬主機(jī)單獨(dú)的設(shè)置不同的PHP選項(xiàng)。這樣我們就可以為每個(gè)虛擬主機(jī)提供定制化服務(wù)。相信在實(shí)際的開發(fā)中,常常會(huì)遇到需要在每個(gè)目錄中為代碼單獨(dú)配置不同的環(huán)境選項(xiàng)的情況。PHP卻沒有提供全局性的設(shè)置方式,這時(shí)候php_ini_perdir就是我們不可或缺的選項(xiàng)了。