Я настроил .htaccess
файл для добавления PHP
ошибки в лог-файл:
php_flag log_errors on
php_value error_log /home/user_id/public_html/PHP_errors.php
php_value error_reporting 6143
и работает нормально на удаленном сервере (linux). Но указанный выше путь не существует на локальном сервере (windows). Я старался:
php_value error_log ./PHP_errors.php
И это работает в локальном, но это не работает на удаленном сервере.
Можно ли ограничить вышеперечисленные направления для удаленного сервера? Что-то вроде:
Condition %{http_host} ^example.com$
php_value error_log /home/user_id/public_html/PHP_errors.php
Condition %{http_host} ^localhost$
php_value error_log ./PHP_errors.php
(У меня нет доступа к файлу php.ini на удаленном сервере, но, конечно, я могу изменить его на локальном)
Используя Apache 2.4, вы можете использовать этот условный фрагмент:
<If "%{HTTP_HOST} =~ m#^(www\.)?example\.com$#">
php_value error_log /home/user_id/public_html/PHP_errors.php
</If>
<If "%{HTTP_HOST} =~ m#localhost#">
php_value error_log ./PHP_errors.php
</If>
Вы можете контролировать это из PHP. Таким образом, у вас может быть файл конфигурации на PHP, который включается при запуске приложения и устанавливает error_log () и error_reporting ().
Затем у вас может быть несколько версий этого файла в зависимости от вашей среды (локальная или удаленная) или вы можете проверить переменную $ _SERVER, чтобы установить правильные пути.
Здесь похожий вопрос с хорошим ответом: https://stackoverflow.com/a/4139899/5550193
Кроме того, вы можете не захотеть давать вашему файлу журнала расширение .php
как это открывает для некоторых потенциальных подвигов. Лучше назови это .log
или что-то еще, что не может быть отправлено переводчику Apache.