2012-12-07 11 views
17

Ho un'applicazione PHP distribuito su Heroku, ma io non riesco a individuare il log degli errori apache. Utilizzo del comando $heroku logs Mi sembra di ottenere solo i log di accesso di Apache. Così un gruppo di GET 200 OK, ecc, ma nessuna informazione di errore che viene messo nel log degli errori a livello locale, come ad esempio 'Fatal error PHP: bla bla'PHP log di errore in Heroku

Dove posso accedere a questi registri degli errori su Heroku, o come devo dire all'app di scrivere sul log di Heroku come fa il log degli errori locali?

Mi sento come se fossi con vista una cosa ovvia, ma io non riesco a trovare una soluzione.

+0

mi stavo chiedendo questo. Per favore, dai una risposta se l'hai scoperto. – bonez

risposta

5

Dopo un sacco di sperimentazione, sembra che tu abbia bisogno di commentare error_log in php.ini e assicurarsi che log_errors = on .. questa uscita dovrebbe vostri errori al stderr dove il logplex Heroku può raccogliere il flusso, quindi monitorare con heroku logs --tail .. Ho lanciato un'app di Facebook su heroku e ho guardato il loro phpinfo() e ho copiato il setup.

+0

Secondo te, ho solo bisogno di impostare 'log_errors = On' nel mio php.ini? Non funziona per me .. – fain182

+0

hai anche commentato error_log come suggerisce la risposta? – bonez

0

che non è legato a Heroku modo di distribuzione, ma per la configurazione di PHP. La direttiva error_log gestisce questo.

La direttiva error_log definisce il nome del file in cui devono essere registrati gli errori di script. Il file dovrebbe essere scrivibile dall'utente del server web.

0

Prova ad aggiungere:

cat >>boot.sh <<EOF 
for var in \`env|cut -f1 -d=\`; do 
    echo "PassEnv \$var" >> /app/apache/conf/httpd.conf; 
done 
touch /app/apache/logs/error_log 
touch /app/apache/logs/access_log 
touch /app/apache/logs/php_error.log 
tail -F /app/apache/logs/error_log & 
tail -F /app/apache/logs/access_log & 
tail -F /app/apache/logs/php_error.log & 
echo "Launching apache" 
exec /app/apache/bin/httpd -DNO_DETACH 
EOF 

:

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

fino alla cima della pagina PHP/app

+0

Questo non funziona –

+0

Davvero? Vedo questo nel mio ceppo: "mer 6 feb 18:51:35 2013] [errore] [cliente 10.44.51.101] PHP Errore di analisi: errore di sintassi, T_STRING inatteso /app/www/index.php on line 5 " Non è quello che l'OP voleva? – joshbirk

+0

Il codice di prova è solo:? Io distribuisco a Heroku, non ci sono modifiche di configurazione - e l'esecuzione heroku registra dopo aver colpito index.php. – joshbirk

1

Abbiamo dovuto aggiungere questo alla nostra buildpack nel bidone file/compilazione Abbiamo lasciato le impostazioni php.ini e https.conf per lo più così come sono.