.htaccess 将我的站点配置为对所有目录使用自定义php.ini文件时出现问题 PHP 5.2.17 joomla 1.6.4 1和1 Linux共享服务器 php作为cgi运行

.htaccess 将我的站点配置为对所有目录使用自定义php.ini文件时出现问题 PHP 5.2.17 joomla 1.6.4 1和1 Linux共享服务器 php作为cgi运行,.htaccess,cgi,php,.htaccess,Cgi,Php,您好,我正在尝试在我的整个网站中使用自定义php.ini。我知道我可以在每个文件夹中放一个php.ini文件,但这是不可行的 我在网上搜索,找到了以下方法: 1-创建自定义php.ini文件并将其放入path/to/your/website/cgi-bin文件夹中 2-创建以下php.cgi文件 #!/bin/sh exec /usr/local/bin/php5 -c path/to/your/website/cgi-bin 3-将php.cgi上传到/path/to/your/websit

您好,我正在尝试在我的整个网站中使用自定义php.ini。我知道我可以在每个文件夹中放一个php.ini文件,但这是不可行的

我在网上搜索,找到了以下方法:

1-创建自定义php.ini文件并将其放入path/to/your/website/cgi-bin文件夹中

2-创建以下php.cgi文件

#!/bin/sh
exec /usr/local/bin/php5 -c path/to/your/website/cgi-bin
3-将php.cgi上传到/path/to/your/website/cgi-bin

4-chmod+xphp.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
多谢各位

更新日期2011年9月2日-19:37 已尝试在.htaccess中包含以下语句

SetEnv PHPRC /path/to/my/website/cgi-bin <- where my custom php.ini file is located.
SetEnv PHPRC/path/to/my/website/cgi-bin

但还是什么都没有

我会继续努力

感谢任何帮助

更新2-9/3/2011-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脚本但没有php.ini,则创建指向php.ini的硬链接

2-如果没有php脚本且存在php.ini,则删除硬链接(在函数的最后一个if中完成)。我包括这个是为了清理旧php.ini文件的文件系统

这对我有用

我仍然对我原来问题的答案感到好奇


我希望这对别人有帮助

看来你要走很长的路了。只需修改
.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"
或者更好的是
manphp