Настройка докеры php-fpm/nginx: php-fpm throwing blank 500, без журналов ошибок

Git repo проекта: https://github.com/tombusby/docker-laravel-experiments (HEAD во время записи - 823fd22).

Вот мой 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

В src/Я создал новый проект laravel. Это все правильно работает, если я меняю index.php на один с базовым echo "hello world";, и если я использую echo "called";exit();, я могу определить, что часть laravel index.php действительно выполняется.

Он умирает в строке 53:

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

Я понятия не имею, почему это происходит, и я попытался использовать docker exec -it <cid> bash, чтобы посмотреть вокруг моего контейнера php-fpm для журналов ошибок. Все журналы перенаправляются на stderr/stdout (который собирается докере).

Вот результат, который собирает докер:

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" "-"

Как вы можете видеть, "500" почти ничего не помогает мне понять, почему произошла ошибка, но я не могу найти способ получить трассировку стека или что-то вроде правильных журналов ошибок, которые расширение apache php произвели.

Ответ 1

В соответствии с нашим обсуждением в ## php на freenode...

Ваша проблема в том, что для параметра php.ini "log_errors" установлено значение "Выкл.".

ваши варианты:

  • set log_errors = Вкл. в php.ini
  • установить php_admin_flag [log_errors] = Включить в конфигурацию пула (для контейнера docker на основе php:5.6-fpm, который находится в файле /usr/local/etc/php-fpm.conf)
  • или, возможно, установить log_errors = On в .user.ini(php per-dir config, аналогично .htaccess)

Ответ 2

Как я могу видеть, что ваш запрос выполняется с помощью Mac, является ли также среда докеров, настроенная на Mac? Если вы можете, выполнив bash в контейнере php-fpm, попытайтесь записать в открытый том? (/var/www/html на контейнере)