- 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
#!/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 - включить следующую строку внутри .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
Спасибо.
ОБНОВЛЕНИЕ 9/2/2011 - 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 - 3/3/2011 - 0:03 (ВРЕМЕННОЕ РЕШЕНИЕ)
Итак, я не смог найти решение своей проблемы. Я решил создать небольшой скрипт php для создания жестких ссылок на php.ini в каждом каталоге, где есть скрипт php.
Смотрите код ниже, если вам интересно:
<?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.
Это сработало для меня.
Мне все еще интересно узнать ответ на мою первоначальную проблему.
Надеюсь, это кому-нибудь поможет!