Compte Git du projet: https://github.com/tombusby/docker-laravel-experiments (HEAD au moment de la rédaction est 823fd22).
Voici mon docker-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
Dans src/j'ai créé un nouveau projet Laravel. Tout cela fonctionne correctement si j'échange index.php pour un avec un echo "hello world";
de base et si j'utilise echo "called";exit();
, je peux identifier la partie du fichier index.php de laravel qui est exécutée.
Il meurt à la ligne 53:
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
Je ne sais pas pourquoi cela se produit, et j'ai essayé d'utiliser docker exec -it <cid> bash
pour jeter un coup d'œil à mon conteneur php-fpm pour les journaux d'erreurs. Tous les journaux sont redirigés vers stderr/stdout (qui est collecté par le menu fixe).
Voici la sortie que docker collecte:
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" "-"
Comme vous pouvez le constater, "500" ne m'a pratiquement pas aidé à comprendre pourquoi il y a eu une erreur, mais je ne trouve aucun moyen d'obtenir la trace de la pile ni quoi que ce soit du type des journaux d'erreur appropriés générés par l'extension PHP d'Apache.
Selon notre discussion dans ## php sur freenode ...
Votre problème est que le paramètre php.ini "log_errors" est défini sur Off.
vos options sont:
php:5.6-fpm
figurant dans le fichier /usr/local/etc/php-fpm.conf
)Comme je peux voir que votre demande est en cours d'exécution par un Mac, l'environnement de menu fixe est-il également configuré sur [?____.] Si c'est le cas, en exécutant bash sur le conteneur php-fpm, essayez d'écrire dans le volume exposé. ? (/var/www/html
sur le conteneur)