使用者特定的 Php.ini 當 php 作為模組運作時?

使用者特定的 Php.ini 當 php 作為模組運作時?

我有一個只能在 ini 文件中更改的 php 設定。由於衝突,我無法在全域 php.ini 中更改此設置,因此我需要指定此用戶。如果php作為模組運行可以做到這一點嗎?或者我必須將 php run 作為 cgi 更改嗎?

似乎最好的答案是“並非如此”,但您可以使用以下技巧偷偷更改一些參數。

答案1

我不知道在使用 PHP 作為 Apache 模組時,只有在使用 PHP 作為 CGI 時,有什麼方法可以指定單獨的 php.ini 。也就是說,可以在檔案中更改 php.ini 中的任何配置選項,.htaccess如下所示http://php.net/configuration.changes只要您將 Apache 配置中的 AllowOverride 設為OptionsAll

我在許多網站上都這樣做過,以更改常見的 PHP 配置。我假設您不需要更改每個設置,因此應該通過將選項添加到.htaccess需要更改的目錄中的文件來輕鬆管理該數字。

以下是我在幾個網站上使用的一個來更改include_path和設定auto_prepend_fileauto_append_file設定。對於布林標誌項,只需使用php_flag而不是php_value.

<IfModule mod_php5.c>
    php_value auto_prepend_file 'header.inc.php'
    php_value auto_append_file 'footer.inc.php'
    php_value include_path '/path/to/private/includes:/usr/share/pear'
</IfModule>

答案2

我覆蓋了 php cgi 包裝器的 php 處理程序,並且能夠指定 php.ini 文件

為此:在您要修改的資料夾中建立一個 htaccess 文件,如下所示:

Action php5-cgi /cgi-bin/php5-cgi.cgi
AddHandler php5-cgi .php

然後建立一個檔案“php5-cgi.cgi”,內容如下:

#!/bin/sh
exec /usr/bin/php-cgi "$@" -c "/home/user/php.ini"

設定此檔案的權限以「使用者」身分執行。然後使用 phpinfo(1) 運行測試檔;查看是否已載入 ini 檔案。

謝謝大家的幫忙!

答案3

所有詳細資訊都在這裡:http://php.net/configuration.changes

答案4

您可以為每個虛擬主機/使用者使用 Apache“php_admin_value”。

IIRC,您可以使用此命令重新定義每個 php.ini 值

相關內容