PHP error_log() не пишет в журнал - OSX El Capitan

У меня ужасное время, когда я пытаюсь заставить мои вызовы PHP error_log() на самом деле регистрировать что-либо. Я использую OSX El Capitan, установлены все последние обновления (сейчас я на 10.11.4), но вызовы error_log() просто отказываются что-либо писать.

Вот как я настроил httpd-vhosts.conf:

NameVirtualHost *:80

<VirtualHost local.mysite:80>
ServerAdmin [email protected]
DocumentRoot "/Volumes/Coding/mysite/"
ServerName local.mysite:80
<directory "/Volumes/Coding/mysite/">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</directory>
php_value error_log "/Volumes/Coding/mysite/error.log"
CustomLog "/Volumes/Coding/mysite/access.log" common
</VirtualHost>

Права доступа к файлу error.log таковы, что любой в чертовой вселенной может делать с ним все, что захочет, так что это не проблема разрешений.

Файл php.ini подтверждает, что файл журнала ошибок находится именно там, где он указан выше.

Я использую CodeIgniter 3. В файле config.php у меня есть следующие строки:

$config['log_threshold'] = 4;
$config['log_path'] = '/Volumes/Coding/mysite/error.log';

Для папки «mysite» также установлены разрешения на запись.

Так что еще я должен проверить?


person dauber    schedule 12.05.2016    source источник
comment
Вы работаете mod_php? php_value записи работают только при использовании модуля, а не с какой-либо библиотекой/расширением CGI. Почему бы вам не попробовать файл .user.ini в вашем docroot вместо   -  person Phil    schedule 13.05.2016
comment
Что ж, у меня есть это в моем httpd.conf: LoadModule php5_module libexec/apache2/libphp5.so Это говорит мне, что да, это mod_php.   -  person dauber    schedule 13.05.2016


Ответы (1)


Ну, это был опыт...

Оказывается, ведение журнала по умолчанию отключено, и не было php.ini для его включения. Я добавил php.ini, в котором была просто эта строка:

log_errors = On

Я закинул тестовую ошибку error_log() в файл index.php и... это сработало! Однако другие команды error_log(), которые я ввел, не срабатывали.

После некоторой борьбы оказалось, что я ПОЛНОСТЬЮ ЗАБЫЛ, что код, в котором error_log() не срабатывал, был... кодом, который больше не используется! Я забыл, что перенес эту функциональность в AngularJS...

В любом случае, проблема решена!

person dauber    schedule 15.05.2016