Git Repo des Projekts: https://github.com/tombusby/docker-laravel-experiments (HEAD zum Zeitpunkt des Schreibens ist 823fd22).Docker php-fpm/nginx Einrichtung: php-fpm werfen blank 500, keine Fehlerprotokolle
Hier ist meine 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/Ich habe ein frisches Laravel Projekt erstellt. Das alles funktioniert korrekt, wenn ich index.php für einen mit einem Basis echo "hello world";
austausche und wenn ich echo "called";exit();
benutze, kann ich identifizieren, dass ein Teil von laravels index.php ausgeführt wird.
Es stirbt in Zeile 53:
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
Ich habe keine Ahnung, warum dies geschieht, und ich habe versucht, docker exec -it <cid> bash
einen Blick in meinen php-fpm Behälter für Fehlerprotokolle zu haben, verwenden. Alle Protokolle werden zu stderr/stdout umgeleitet (das vom Andockfenster erfasst wird).
Hier ist die Ausgabe, die Andockfenster sammelt:
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 „500“ hat so ziemlich nichts sehen kann mir zu helfen, zu arbeiten, warum ein Fehler war, aber ich kann jede mögliche Weise nicht finden, den Stack-Trace zu bekommen oder so etwas wie die richtigen Fehlerprotokolle, die die Apache-PHP-Erweiterung erzeugt hätte.
ich bin vor einem _very_ ähnliches Problem ... haben Sie jemals die Ursache finden das Problem em? – chrisvdb
Die akzeptierte Antwort löst Ihr Problem. Die Standard-php-fpm config vom offiziellen docker iamge hat Fehler ausgeschaltet. Wenn Sie versuchen, es mit 'ini_set' oder ähnlichem zu aktivieren, ignoriert php-fpm das. Sie müssen es in der php-fpm Konfigurationsdatei mit 'php_admin_flag [log_errors]' einstellen. Ich tat dies, indem ich meinen Docker komponieren mounte eine costom php-fpm Config-Datei über die Oberseite des bestehenden als schreibgeschütztes Volume. –
Auch, wenn diese Frage beschreibt ein Problem, das Sie haben, dann Upvotes sind immer willkommen;) –