Git-Repo des Projekts: https://github.com/tombusby/docker-laravel-experiments (HEAD zum Zeitpunkt des Schreibens ist 823fd22).
Hier ist mein 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
In src/habe ich ein neues Laravel-Projekt erstellt. Dies funktioniert alles korrekt, wenn ich index.php mit einem einfachen echo "hello world";
austausche und wenn ich echo "called";exit();
benutze, kann ich feststellen, dass ein Teil von laravel's index.php ausgeführt wird.
Es stirbt in Zeile 53:
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
Ich habe keine Ahnung, warum dies passiert, und ich habe mit docker exec -it <cid> bash
versucht, in meinem PHP-Fpm-Container nach Fehlerprotokollen zu suchen. Alle Protokolle werden nach stderr/stdout umgeleitet (das vom Docker erfasst wird).
Hier ist die Ausgabe, die das Andockgerät erfasst:
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" "-"
Wie Sie sehen, hilft "500" nicht, um herauszufinden, warum ein Fehler aufgetreten ist. Ich kann jedoch keine Möglichkeit finden, die Stack-Ablaufverfolgung abzurufen oder die richtigen Fehlerprotokolle, die von Apaches PHP-Erweiterung erzeugt wurden.
Wie in unserer Diskussion in ## php über freenode ...
Ihr Problem ist, dass die php.ini-Einstellung "log_errors" auf Off gesetzt ist.
ihre Optionen sind:
php:5.6-fpm
, der sich in der Datei /usr/local/etc/php-fpm.conf
befindet)Wie ich sehen kann, dass Ihre Anfrage von einem Mac ausgeführt wird, ist die Docker-Umgebung auch auf dem Mac eingerichtet? Wenn dies möglich ist, versuchen Sie, indem Sie bash im php-fpm-Container ausführen, in den freigegebenen Datenträger zu schreiben ? (/var/www/html
auf dem Container)