2016-05-12 10 views
1

Ich habe ein Biest einer Zeit zu versuchen, meine PHP error_log() -Aufrufe zu bekommen, um wirklich etwas zu protokollieren. Ich benutze OSX El Capitan, alle neuesten Updates installiert (ich bin gerade auf 10.11.4), aber die error_log() -Aufrufe lehnen es ab, irgendetwas zu schreiben.PHP error_log() nicht schreiben zu loggen - OSX El Capitan

Hier ist, wie ich meine httpd-vhosts.conf eingerichtet:

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> 

die Berechtigungen der Datei error.log so sind, dass irgendjemand in der freakin Universum tun können, was sie FREAKIN wollen mit ihm, so Es ist kein Berechtigungsproblem.

Die Datei php.ini bestätigt, dass die Fehlerprotokolldatei genau dort ist, wo sie oben angegeben wurde.

Ich benutze CodeIgniter 3. In der Datei config.php habe ich diese Zeilen:

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

Der „mysite“ -Ordner auch seine Berechtigungen festgelegt hat schriftlich zu ermöglichen.

Also was sollte ich noch überprüfen?

+0

Laufen Sie 'mod_php'? 'php_value'-Einträge funktionieren nur bei Verwendung des Moduls und nicht mit irgendeiner CGI-Bibliothek/Erweiterung. Warum probierst du nicht eine ['.user.ini'] (http://php.net/manual/en/configuration.file.per-user.php) Datei in deiner Docroot stattdessen – Phil

+0

Nun, ich habe dies in meine httpd.conf: LoadModule php5_module libexec/apache2/libphp5.so Das sagt mir, dass yep, es ist mod_php. – dauber

Antwort

0

Nun, das war ein Erlebnis ...

aus Schaltet die Protokollierung standardmäßig ausgeschaltet ist, und es gab keine php.ini es zu aktivieren. Ich habe eine php.ini, die einfach diese Linie hatte:

log_errors = On 

ich einen Test error_log warf() in die Datei index.php und ... es hat funktioniert! Die anderen error_log() -Befehle, die ich eingegeben habe, feuern jedoch nicht.

Nach einigen Schwierigkeiten, stellte sich heraus, ich hatte komplett vergessen, dass der Code, wo die error_log() nicht feuern war ... Code, der nicht mehr verwendet wird! Ich habe vergessen, dass ich diese Funktionalität auf AngularJS umgestellt habe ...

Wie auch immer, Problem gelöst!