Назад | Перейти на главную страницу

Laradock + автономный NginX

У меня есть проект Laravel, которому нужен PHP 7.1, но на сервере мы используем 7.2. У нас есть отдельные файлы конфигурации nginx для каждого проекта, и все они работают нормально.

Я решил пойти ва-банк и использовать PHP 7.1 для проекта. Однако запускается как шарм из коробки ... После создания образов докеров я получаю следующее:

0 ✓ server /var/www/html/myproject.com/laradock $ docker-compose ps
           Name                          Command              State          Ports        
------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up      2375/tcp, 2376/tcp  
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up      9000/tcp            
laradock_workspace_1          /sbin/my_init                   Up      0.0.0.0:2222->22/tcp

В моей конфигурации NginX я пытаюсь переписать корневое расположение, например:

fastcgi_pass 127.0.0.1:9000;

Не повезло я получаю 2019/11/06 14:06:42 [error] 1287#1287: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 84.X.XX.207, server: myproject.com, request: "GET /item/show/24401 HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000", host: "myproject.com", referrer: "https://myproject.com/"

Есть идеи, что происходит? :(

ОБНОВИТЬ

Я попробовал еще раз, на этот раз с IP-адресом образа докера php-fpm, который я получил, выполнив nspect 9d15baXXXXXX | grep IPAddress

Теперь журнал выглядит так:

2019/11/06 14:58:49 [error] 12391#12391: *2 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 84.2.XX.XXX, server: myproject.com, request: "GET /item/show/2350 HTTP/2.0", upstream: "fastcgi://192.168.XX.X:9000", host: "myproject.com", referrer: "https://myproject.com/"

Все еще немного запутался в происходящем.

ОБНОВЛЕНИЕ # 2

Хорошо, я кое-что выяснил.

Во-первых, IP-адрес докера PHP-FPM хорош в fastcgi_pass НО, Я ДОЛЖЕН переписать fastcgi_param SCRIPT_FILENAME. Обычно у меня есть $document_root$fastcgi_script_name там, но это не то же самое, что внутри докера. Мне пришлось изменить его на /var/www/public$fastcgi_script_name. Но теперь все становится сложнее, поскольку теперь все, что я получаю, - это browser error 500 message, поэтому в моем NginX нет логов.

Как мне отладить это?