【问题标题】:nginx using php-fpm not loading / running. No errors使用 php-fpm 的 nginx 未加载/运行。没有错误
【发布时间】:2020-03-25 03:21:26
【问题描述】:

背景

我正在尝试在 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身份运行可以吗?

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

【问题讨论】:

    标签: php linux nginx cgi


    【解决方案1】:

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

    【讨论】:

    • 这只是我写这篇文章时的一个错字。刚刚更新了我的问题。对不起
    • @dot 嗯嗯 ​​你粘贴的访问日志和定义的error_log一样吗?错误日志中通常包含[NOTICE][ERROR]
    • 不,它们是不同的。错误日志是空的。没有错误。
    【解决方案2】:
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index login.php;
                include fastcgi_params;
        }
    

    改为

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

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2019-07-04
      • 2012-02-05
      相关资源
      最近更新 更多