2011-03-14 86 views
3

我的服務器使用suPHP,所以每個網站都有它自己的php.ini文件。我的主機建議在我的.htaccess文件中添加以下內容:php.ini與suPHP在.htaccess

<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/user/public_html 
</IfModule> 

這基本上指向該網站的php.ini文件。但是,我試圖在所有不需要編輯的網站上都有一個標準的.htaccess文件 - 基本上是我開始使用的「樣板」網站的一部分。我試圖將以上更改爲:

<IfModule mod_suphp.c> 
suPHP_ConfigPath %{DOCUMENT_ROOT}/public_html 
</IfModule> 

但這不起作用。正如你可以告訴我可能不瞭解這是如何工作的。任何人都可以用上面的代碼來幫助我,這樣我就不需要爲每個.htaccess文件放置確切的路徑,並讓Apache找出我的php.ini文件的路徑?

我希望這是有道理的,這有點難以解釋!

+1

似乎從環顧四周(如這裏:http://stackoverflow.com/questions/1170100/accessing-serverdocument-root-value-in-htaccess-file),我可能無法使用%{DOCUMENT_ROOT}除了RewriteCond以外的任何地方。這是真的?有沒有其他方法可以指向/ home/user/public_html,而不用在每個.htaccess文件中寫入不同的方式? – iagdotme 2011-03-14 12:59:59

回答

3

只是做了一個老suphp Qs的掃描。 mod_suphp使用標準參數解析器,所以原則上%{DOCUMENT_ROOT}應該工作。幾乎可以肯定的問題是suPHP通常用於共享主機解決方案,對於這些用戶,有效的DOCUMENT_ROOT與系統配置中的DocumentRoot指令建立的用戶不同。

大多數供應商設置了一個環境變量來指向用戶文檔根目錄。我的主機設置了DOCUMENT_ROOT_REAL,我遇到的另一個是PHP_DOCUMENT_ROOT。你需要看看你的phpinfo()報告,看看你的情況適用。所以,在我的.htaccess,我用

suPHP_ConfigPath %{ENV:DOCUMENT_ROOT_REAL}/_private 

,併爲我工作得很好。