2013-10-04 2 views
4

Я недавно перешел на FastCGI и теперь у меня есть проблема с установкой PHP включают путь, который ранее был установлен в .htaccess как:Использование настройки Apache указать PHP включают в себя каталог для каждого сайта

php_value include_path "[INCLUDE PATH]" 

Поскольку переключатель, это дает ошибку:

Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration

И к моему пониманию «php_value» не может быть установлен с помощью Htaccess с FastCGI.

Есть ли способы обойти это или глобально указать путь включения php для всего сайта с подкаталогами, например, через конфигурацию apache?

Я знаю, что я могу вручную указать путь включения для каждого скрипта в php, или я могу указать путь include в php.ini в каталоге, но сайты уже установлены со многими файлами и каталогами, и это будет громоздко пройти через каждый файл и каталог, чтобы скопировать новые включенные пути или файлы php.ini.

ответ

2

Вы в значительной степени не повезло, поскольку только модуль PHP поддерживает директивы php_value и php_flag.

Что вы можете сделать, так это создать файл php.ini для каждого веб-сайта. Из памяти вам понадобится полный файл php.ini, так как новый файл полностью переопределит системный.

Один простой способ сделать это было бы скопировать системный файл, а затем добавить настраиваемое свойство, например

cp /usr/share/php5/php.ini /path/to/site/php.d/php.ini \ 
&& echo 'include_path = "[INCLUDE PATH]"' >> /path/to/site/php.d/php.ini 

Затем в .htaccess файле сайта, установите переменную окружения PHPRC. Это делается для того, чтобы не добавлять файл php.ini в каждый каталог.

SetEnv PHPRC /path/to/site/php.d 

В идеале, хотя, каждый сайт должен заботиться о своих собственных include_path в коде. Это сделает ваши приложения более переносимыми.

set_include_path(implode(PATH_SEPARATOR, [ 
    '[INCLUDE_PATH'], 
    get_include_path() 
])); 
+0

Это было бы здорово, спасибо! Но, похоже, он не распознает новый php.ini через phpinfo() (вне зависимости от того, установлен ли его в .htaccess через SetEnv) или даже если я включил его в каталог. Однако он отлично работает с suPHP. В настоящее время я запускаю FastCGI с suEXEC off - есть ли что-то особенное, что мне нужно сделать? – peter986532

+0

@ peter986532 Ах, извините, я только делал это через suEXEC, так что не могу вам помочь – Phil

 Смежные вопросы

  • Нет связанных вопросов^_^