- PHP 5.2.17
- 的Joomla 1.6.4
- 的1and1 Linux共享服務器
- PHP運行爲CGI
嗨,我想在我的網站中使用自定義php.ini。我知道我可以在每個文件夾中放置一個php.ini文件,但這不可行。配置的問題我的網站使用自定義的php.ini文件的所有目錄
我在網上搜索,發現下面的方法:
1 - 創建自定義的php.ini文件,並把它裏面的路徑/到/你/網站/ cgi-bin目錄文件夾
2 - 創建以下php.cgi文件
#!/bin/sh
exec /usr/local/bin/php5 -c path/to/your/website/cgi-bin
3 - 上傳php.cgi到/路徑/到/你/網站/ cgi-bin目錄
4 - 使用chmod + X php.cgi使其可執行
5 - 包括內部的.htaccess下面一行在我的網站根
Action application/x-httpd-php5 /path/to/your/website/cgi-bin/php.cgi
按照我的理解,這樣做在我的網站上,PHP腳本後會代替開始使用我的自定義php.ini文件默認的一個。
任何人都可以幫忙嗎?我花了一天的更多時間試圖解決這個問題,但沒有成功。
順便說一句,我的帳戶根(以上我的網站根目錄一級)具有以下行.htaccess文件:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
謝謝。
UPDATE 2011年9月2日 - 19:37
嘗試,包括在.htaccess
SetEnv PHPRC /path/to/my/website/cgi-bin <- where my custom php.ini file is located.
下面的語句根據這個網站就應該有工作 - >http://support.premiumreseller.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=85
但仍然沒有。
我會繼續努力。
任何幫助讚賞!
更新2 - 2011/9/3 - 0:03(解決方法)
所以,我找不到我的問題的解決方案。我決定創建一個小型php腳本,在每個具有php腳本的目錄中創建到php.ini的硬鏈接。
請參見下面的代碼,如果你很好奇:
<?php
define('ROOT_DIR', $_SERVER['DOCUMENT_ROOT']);
define('FILE_PHPINI', ROOT_DIR . "/cgi-bin/php.ini");
processdir(ROOT_DIR);
function processdir($path)
{
$FlagNoPHP = true;
$localPHPINI = $path . "/php.ini";
foreach (new DirectoryIterator($path) as $file)
{
if (!($file->isDot()))
{
if ($file->isDir())
{
processdir($path . "/" . $file);
}
else if ($FlagNoPHP && fnmatch("*.php*", $file))
{
$FlagNoPHP = false;
if (!file_exists($localPHPINI))
{
link(FILE_PHPINI, $localPHPINI);
}
}
}
}
if ($FlagNoPHP)
{
if (file_exists($localPHPINI))
{
unlink($localPHPINI);
}
}
}
?>
上面的代碼看起來每個目錄中在我的網站和:
1 - 如果有一個PHP腳本和NO的php.ini ,創建一個硬鏈接到php.ini
2 - 如果沒有php腳本並且有一個php.ini,則刪除硬鏈接(在最後一個功能中完成)。我包括這個以清理舊的php.ini文件的文件系統。
這對我有效。
我仍然對原始問題的答案感到好奇。
我希望這可以幫助別人!