2011-09-03 42 views
1
  • 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文件的文件系統。

這對我有效。

我仍然對原始問題的答案感到好奇。

我希望這可以幫助別人!

回答

0

好像你走的路很長。只需修改.bashrc

export PHPRC="/Volumes/Mac_Daddy/web_curr/public_html/php_osx.ini" 

結果:

Configuration File (php.ini) Path: /usr/local/php5/lib 
Loaded Configuration File:   /Volumes/Mac_Daddy/web_curr/public_html/php_osx.ini 
Scan for additional .ini files in: /usr/local/php5/php.d 
Additional .ini files parsed:  /usr/local/php5/php.d/10-extension_dir.ini 

或創建一個別名:

alias myphp="/usr/local/php5/bin/php -c /somewhere/someplace/php.ini" 

或更好,但man php

相關問題