PHP читает свои настройки из файла php.ini, в котором можно описать опции и параметры для работы модуля PHP для всех сайтов. Т.е. в php.ini указываются опции, которые действуют на все обслуживаемые этим веб-сервером сайты - глобально.
Но нередко встречается необходимость прописать данные опции для отдельных сайтов - свои. Например, переопределить путь к файлу логов или указать бОльшее значение допустимой для использования PHP-процессом памяти... и так далее.
Если мы говорим о сервере Apache, то у нас два пути.
1) Путь первый: через конфигурацию Apache.Открываем файл конфигурации нужного сайта и внутри блока "<VirtualHost...>" прописываем нужные опции для данного хоста.
Опции прописываются с помощью следующих четырех ключевых слов:
- php_value параметр значение. Используйте этот вариант для указания не-булевых (т.е. не "вкл/выкл", "on/off") значений. Булевые значения задаются следующей опцией.
- php_flag параметр on|off. Используется для задания булева значения опции.
- php_admin_value параметр значение. То же самое, что и php_value, но только безусловно перекрывает указанную в .htaccess такую-же опцию (т.е. приоритет php_admin_value выше, чем php_value в файле .htaccess).
- php_admin_flag параметр on|off. То же самое, что и php_flag, но только безусловно перекрывает указанную в .htaccess такую-же опцию.
Примеры:
<VirtualHost ...>
php_value error_log "/www/mysite/log/errors.log"
php_flag display_errors Off
php_admin_value memory_limit 32M
</VirtualHost>
2) Путь второй: через файл .htaccess.Синтаксис тот же самый, за исключением того, что опции php_admin_value и php_admin_flag в файле .htaccess не работают.
Пример:
php_value error_log "/www/mysite/log/errors.log"
php_flag display_errors Off
PS/Примечание. В файлах конфигурации Apache и .htaccess НЕЛЬЗЯ использовать константы PHP (например, E_ALL для error_reporting), т.к. эти константы недоступны все PHP, т.е. их не существует для Apache. Вместо них используйте цисловые значения, полученные бинарным сочетанием (о них можно процесть в хелпе PHP).
Актуально для: Apache 2.x; PHP 5.2.x и выше
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)