配置我的网站以便为所有目录使用自定义php.ini文件时出现问题

时间:2011-09-03 00:15:03

标签: .htaccess cgi php

  • PHP 5.2.17
  • joomla 1.6.4
  • 1and1 Linux共享服务器
  • php正在以cgi
  • 运行

嗨,我想在我的网站上使用自定义的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 + x php.cgi使其可执行

5 - 在我的网站root

中包含.htaccess中的以下行
Action application/x-httpd-php5 /path/to/your/website/cgi-bin/php.cgi

根据我的理解,完成上述操作后,我网站上的php脚本将开始使用我的自定义php.ini文件而不是默认文件。

任何人都可以提供帮助?我花了很多时间试图解决这个问题而没有成功。

顺便说一下,我的帐户root(比我的网站根目录高一级)有一个.htaccess文件,其中包含以下行:

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

谢谢。

更新9/2/2011 - 19:37

尝试在.htaccess中包含以下语句

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

根据这个网站它应该有用 - &gt; http://support.premiumreseller.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=85

但仍然没有。

我会继续努力。

任何帮助表示赞赏!!!

更新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文件的文件系统。

这对我有用。

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

我希望这有助于某人!

1 个答案:

答案 0 :(得分: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