В моем первом PHP скрипт во многих лет я пытаюсь войти ошибку:PHP не может записать в журнал ошибок - разрешение отказано
error_log("my error message", 3, $error_log);
Я получаю сообщение об ошибке в общей ошибки Apache войти:
PHP Warning: error_log(/var/log/apache2/my_php_errors.log): failed to open stream: Permission denied in /var/www/html/blahblah/my_script.php on line 88
Это то, что я проверил и попробовал:
- Создано
$error_log
с той же собственности (root.adm
) и химической завивки (640
) в качестве журнала ошибок Apache. - Пользователь изменил
www-data
, на котором был запущен пользователь PHP. log_errors
являетсяOn
.open_basedir
не установлен.- Использование PHP 5.5.x, поэтому безопасный режим не существует.
Что мне не хватает?
Редактировать: Он может писать в общий журнал ошибок Apache. Тайна заключается в том, почему она не может писать в другой файл в том же каталоге с тем же правом собственности и разрешениями.
Редактировать 2: Другой разработчик сказал мне, что это работает на его WAMP, поэтому это что-то особенное для моего стека или конфигурации LAMP.
Нам нужна дополнительная информация о переменной '$ error_log'. Это пункт назначения к файлу журнала. Оставьте его пустым для файла журнала по умолчанию. Например, он находится в корневом каталоге веб-сайта или за его пределами. Если снаружи вы можете проверить разрешенный путь include в ini. – Xorifelse
Обратитесь к администратору сервера. – frosty
Попробуйте использовать 777 для файлов, которые нужно написать PHP, и посмотреть, работает ли это – Machavity