首页 > 解决方案 > 使用 php-fpm 的 nginx 未加载/运行。没有错误

问题描述

背景

我正在尝试在 alpine linux 服务器上启动并运行 nginx /php-fpm7 站点。

问题

当我导航到它时没有出现错误。证书很好。在 /var/log/access.log 文件中,我看到一个 GET 请求访问该站点。但是......我在 /etc/nginx/conf.d/default.conf 中定义的网站/应用程序没有被加载/触发。应该会提示我登录页面。以下是各种文物:

我检查过的

nginx 正在运行和监听。php-fpm 也在运行和监听

mywww:/etc/nginx/conf.d# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      3979/php-fpm.conf)
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      4480/nginx.conf

nginx.conf 加载 /etc/nginx/conf.d/default.conf 中的所有配置文件

 mywww:/etc/nginx# cat nginx.conf | grep conf.d
    include /etc/nginx/conf.d/*.conf;

default.conf 看起来像这样:

server {
        listen 443 ssl;
        root /var/www/mywebapplication.com/public;
        server_name mywebbapplication.com;

        ssl_certificate /etc/ssl/a/bundle.crt;
        ssl_certificate_key     /etc/ssl/a/thekey.key;
        ssl_protocols   TLSv1 TLSv1.1 TLSv1.2;

        error_log /var/log/nginx/mywebapplication.log notice;
        index login.php;
        allow all;

        location / {
                try_files $uri $uri/ /=404;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index login.php;
                include fastcgi_params;
        }
}

登录页面存在:

  mywww:/etc/nginx# ls -lah /var/www/mywebapplication.com/public/login.php
 -rw-r--r--    1 root     root          66 Apr 25  2019 /var/www/mywebapplication.com/public/login.php

Nginx 访问日志文件:

198.1.2.1 - - [24/Mar/2020:15:06:25 +0000] "GET / HTTP/1.1" 200 5 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebK│it/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Mobile Safari/537.36" "-"                                                                 │
198.1.2.1 - - [24/Mar/2020:15:06:29 +0000] "GET /login.php HTTP/1.1" 200 5 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Mobile Safari/537.36" "-"                                                        │

运行进程的用户/组:

mywww:/var/www/mywebapplication.com/public# ps aux | grep php
 3979 root      0:00 {php-fpm7} php-fpm: master process (/etc/php7/php-fpm.conf)
 3986 nginx     0:00 {php-fpm7} php-fpm: pool www
 3987 nginx     0:00 {php-fpm7} php-fpm: pool www
 4716 root      0:00 vim /etc/init.d/php-fpm7
 4719 root      0:00 grep php

nginx 的用户是“nginx”:

mywww:/etc/nginx# cat /etc/nginx/nginx.conf | grep user   
user nginx nginx;

nginx主进程以root身份运行可以吗?

不知道我还应该检查什么。

标签: phplinuxnginxcgi

解决方案


看看root你的default.conf. 您正在使用该文件夹mywebapplication而不是mywebapplication.com. 尝试修复该错字,然后重新启动服务器。


推荐阅读