NGINX返回空白页,但响应代码始终为200

时间:2019-06-16 19:19:08

标签: wordpress http nginx fpm

这是我当前的设置:

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    index  index.php index.html index.htm;

    root  /var/www/example.com;

    location ~ \.php$ {

        include fastcgi_params;
        fastcgi_pass  0.0.0.0:9000;
        fastcgi_index index.php;

    }
}

我添加了一个test.php文件,当请求时,给我200响应代码。我已经测试了其他页面,但是它们也一样,但是这些页面总是空白。

我在这里尝试了不同的组合方式:nginx showing blank PHP pages,但它们似乎对我没有用(404响应)。

我的Wordpress安装基于docker。在相同的设置中,我有MySQL和PHPMyAdmin。那些都很好。 Nginx直接安装在我的Centos 7.6服务器上。

我读到以下内容:https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/(页面底部的注释中的数字4),由于我使用的是Centos,似乎可能出现了此问题。

我不确定可能会丢失什么。

/var/log/nginx/error.log中的日志未显示任何内容。

1 个答案:

答案 0 :(得分:0)

proxy_pass地址进行0.0.0.0很奇怪。也许您需要在localhost或运行PHP-FPM守护程序的主机上进行设置。

通常,当您提供服务并希望在所有接口中使用0.0.0.0时,0.0.0.0是一个位掩码,用于匹配所有接口的所有可能的IP。但是,当您要连接到服务(nginx要连接到PHP-FPM)时,需要显式设置IP,通常为localhost127.0.0.1

如果nginx和PHP-FPM在同一主机上运行,​​最好使用unix套接字,因为它没有TCP开销,因此性能会更好。

在nginx网站上:

location ~ \.php$ {
   try_files $uri =404;
   fastcgi_pass unix:/run/php/php<PHP VERSION>-fpm.sock;
   fastcgi_index index.php;
   include /etc/nginx/fastcgi_params;
}

在PHP-FPM池文件上(通常为/etc/php/7.1/fpm/pool.d/www.conf

listen = /run/php/php<PHP VERSION>-fpm.sock