Laradock + 独立 NginX

Laradock + 独立 NginX

我有一个 Laravel 项目需要 PHP 7.1,但在服务器上我们使用 7.2。我们为每个项目设置了单独的 nginx 配置文件,它们都运行良好。

我决定使用 laradock 并为该项目提供 PHP 7.1。开箱即用,但... 构建 docker 镜像后,我得到了以下内容:

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

知道发生什么事了吗?:(

更新

我再次尝试,这次使用通过执行获得的 php-fpm docker 镜像的 IP 地址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

好的,我已经弄清楚了一些事情。

首先,PHP-FPM docker 的 IP 地址在 中是好的,fastcgi_pass但是,我必须重写fastcgi_param SCRIPT_FILENAME。通常我$document_root$fastcgi_script_name在那里有,但这与 docker 内部不一样。我不得不将其修改为/var/www/public$fastcgi_script_name。但现在,这变得越来越复杂,因为现在我得到的只是一个browser error 500 message,所以我的 NginX 中没有日志。

我该如何调试它?

相关内容