Недавно я переключился на fastcgi, и теперь у меня возникла проблема с установкой пути включения php, который ранее был установлен в .htaccess как:
php_value include_path "[INCLUDE PATH]"
Поскольку переключатель, это дает ошибку:
Неверная команда «php_value», возможно, с ошибкой или определяется модулем, не включенным в конфигурацию сервера
И, к моему пониманию, «php_value» не может быть задан с помощью htaccess с помощью fastcgi.
Есть ли способ обойти это или глобально указать путь включения php для всего сайта с подкаталогами, например, через конфигурацию apache?
Я знаю, что я могу вручную указать путь include для каждого скрипта в php или указать путь include в php.ini в каталоге, но сайты уже установлены со многими файлами и каталогами, и было бы громоздким пройти каждый файл и каталог для копирования новых включенных путей или файлов php.ini.
Вам не повезло, поскольку только 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() ]));