2016-05-06 24 views
11

Git repo del progetto: https://github.com/tombusby/docker-laravel-experiments (HEAD al momento della scrittura è 823fd22).Docker php-fpm/nginx set-up: php-fpm lancio vuoto 500, nessun registro errori

Qui è la mia finestra mobile-compose.yml:

nginx: 
    image: nginx:stable 
    volumes: 
    - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro 
    volumes_from: 
    - php 
    links: 
    - php:php 
    ports: 
    - 80:80 

php: 
    image: php:5.6-fpm 
    volumes: 
    - ./src:/var/www/html 
    expose: 
    - 9000 

Into src/Ho creato un progetto laravel fresca. Tutto funziona correttamente se cambio index.php per uno con un valore base echo "hello world"; e se uso echo "called";exit(); posso identificare che parte di laravel's index.php viene eseguita.

muore in linea 53:

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture() 
); 

Non ho idea perché questo accade, e Ho provato con docker exec -it <cid> bash per dare un'occhiata in giro il mio contenitore php-FPM per log di errore. Tutti i registri vengono reindirizzati a stderr/stdout (che viene raccolto dalla finestra mobile).

Ecco l'output che raccoglie finestra mobile:

php_1 | 172.17.0.3 - 06/May/2016:12:09:34 +0000 "GET /index.php" 500 
nginx_1 | 192.168.99.1 - - [06/May/2016:12:09:34 +0000] "GET /index.php HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36" "-" 

Come si può vedere "500" fa praticamente nulla per aiutarmi a capire perché c'è stato un errore, ma non riesco a trovare alcun modo di ottenendo la traccia dello stack o qualcosa come l'errore corretto registra che l'estensione php di Apache avrebbe prodotto.

+0

sto affrontando un problema simile _very_ ... hai mai individuare la causa principale di il problema em? – chrisvdb

+1

La risposta accettata risolverà il problema. La configurazione predefinita di php-fpm dal docker ufficiale iamge ha errori disattivati. Se provi ad abilitarlo con 'ini_set' o simili, php-fpm lo ignora. È necessario impostarlo nel file di configurazione php-fpm usando 'php_admin_flag [log_errors]'. L'ho fatto facendo in modo che il mio docker compose monti un file di configurazione di costom php-fpm sopra quello esistente come volume di sola lettura. –

+0

Inoltre, se questa domanda descrive un problema che si sta verificando, i voti positivi vengono sempre apprezzati;) –

risposta

12

Come per la nostra discussione in ## php su freenode ...

Il tuo problema è che l'impostazione php.ini "log_errors" è impostato su OFF.

le opzioni sono:

  • set log_errors = On in php.ini
  • set php_admin_flag [log_errors] = On nella vostra piscina di configurazione (per il contenitore finestra mobile basata su php:5.6-fpm che si trova nel file /usr/local/etc/php-fpm.conf)
  • o, eventualmente, set log_errors = On in .user.ini (PHP di per-dir config, simile a .htaccess)
+1

finalmente qualcosa che funziona, lo sto cercando da troppo tempo! 'php_admin_flag [log_errors] = On' – peedee

0

Come posso vedere la richiesta in esecuzione da un Mac, l'ambiente finestra mobile è configurato anche su Mac? Se è possibile, eseguendo bash sul contenitore php-fpm, provare a scrivere nel volume esposto? (/var/www/html sul contenitore)

+0

Questo non è il problema. Tutto funziona correttamente per un'applicazione base Hello mondiale. Il mio problema è che ottengo un 500, e voglio vedere i log per scoprire perché è successo. Non riesco a trovare alcun registro. –

+0

Che cosa intendi per "Hello World App"? –

+0

come in "Hello World": –