web-dev-qa-db-fra.com

Docker php-fpm/nginx set-up: php-fpm jetant à blanc 500, pas de journal des erreurs

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.

11
Tom Busby

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:

  • set log_errors = On dans le fichier php.ini
  • set php_admin_flag [log_errors] = Activé dans la configuration de votre pool (pour le conteneur de menu fixe basé sur php:5.6-fpm figurant dans le fichier /usr/local/etc/php-fpm.conf)
  • ou éventuellement définir log_errors = On dans .user.ini (la configuration de php par répertoire, similaire à .htaccess)
15
AcidReign

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)

0
Luigi Pressello