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