2016-03-01 3 views
4

В моем первом 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.

+2

Нам нужна дополнительная информация о переменной '$ error_log'. Это пункт назначения к файлу журнала. Оставьте его пустым для файла журнала по умолчанию. Например, он находится в корневом каталоге веб-сайта или за его пределами. Если снаружи вы можете проверить разрешенный путь include в ini. – Xorifelse

+0

Обратитесь к администратору сервера. – frosty

+1

Попробуйте использовать 777 для файлов, которые нужно написать PHP, и посмотреть, работает ли это – Machavity

ответ

0

У меня была та же проблема. https://serverfault.com/questions/831444/php-error-log-per-vhost/831666#831666

touch /path/to/php_error.log 
chown www-data:www-data php_error.log 
chmod 755 php_error.log 

спасибо за меня ведет к ответу!

+0

Это не похоже, что это сработало бы в моем случае, так как я попробовал установить владельца 'www-data' и разрешения на еще более широкий' 777'. К сожалению, у меня больше нет доступа к среде, где я столкнулся с этой проблемой. –

+0

PHP (или apache2) должен иметь возможность создавать и записывать файл в каталог.У меня не было проблем, поместив файл журнала в html-каталог, но я не хотел, чтобы файл error_log находился в общедоступном каталоге с возможностью просмотра ... Кроме того, я не хотел расширять область действия корневого каталога виртуального сервера .. поэтому я создал файл в корневом каталоге (коснитесь), а затем установите для него более широкие права только на файл. –

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