2016-07-04 24 views
1

我的虛擬主機是這樣的:使用PHP-FPM時,我可以在htaccess中覆蓋PHP設置嗎?

<Directory "/var/www"> 
    Options Indexes FollowSymlinks MultiViews 
    AllowOverride All 
    Require all granted 

    <FilesMatch "\.php$"> 
    Require all granted 
    SetHandler proxy:fcgi://127.0.0.1:9000 
    </FilesMatch> 
</Directory> 

我想補充php_value線到我的.htaccess文件。當我這樣做,我得到500錯誤,這在我的Apache的錯誤日誌:

/var/www/.htaccess:無效的命令「php_value」,也許拼錯或模塊定義 不包括在服務器配置

所以,問題:有沒有什麼辦法可以在使用PHP-FPM時通過.htaccess覆蓋php.ini設置?

tia。

+0

不,不會那樣工作。 – ceejayoz

+1

php_value僅適用於mod_php,例如PHP直接加載到Apache。它不適用於外部的東西,如php-fpm –

+0

謝謝@MarcB。讓它成爲答案,我會標記它。 – NotoriousWebmaster

回答

6

正如其他人已經指出的那樣,不,在使用PHP-FPM時,您無法通過.htaccess覆蓋設置。

但似乎有一個類似於PHP的機制,名爲.user.ini文件。

從PHP 5.3.0開始,PHP在每個目錄的基礎上支持配置INI文件。這些文件只能由CGI/FastCGI SAPI處理。該功能廢除了PECL htscanner擴展。如果您使用的是Apache,請使用.htaccess文件獲得相同的效果。

除了主要的php.ini文件之外,PHP還會掃描每個目錄中的INI文件,從請求的PHP文件的目錄開始,一直到當前文檔根目錄(如$ _SERVER [ 'DOCUMENT_ROOT'])。如果PHP文件位於文檔根目錄之外,則只掃描其目錄。

只有具有PHP_INI_PERDIR和PHP_INI_USER模式的INI設置才能在.user.ini樣式的INI文件中識別。

,並在下面

評論: 「如果你使用的是Apache,使用.htaccess文件達到相同的效果。」

爲了澄清,這僅適用於Apache模塊模式。如果您將Apache指令放在Apache CGI/FastCGI服務器的.htaccess中,則會將服務器彈出500錯誤。

因此,您可以創建.user.ini類似於.htaccess的文件,但採用ini格式。

相關問題