为什么这些网页不被 PHP 处理?

为什么这些网页不被 PHP 处理?

我在 Ubuntu 14.04 服务器上全新安装了nginx和 ,php5-fpm并进行了如下所示的更改以使配置正常工作。当我浏览到包含 的目录index.php或尝试浏览phpinfo.php文件时,浏览器会尝试下载该文件(即 PHP 未处理该文件并返回响应)。
如果我浏览到任何其他 php 文件,例如process.phptest.php它运行良好。

配置

已更新/etc/php5/fpm/pool.d/www.conf以监听 TCP 套接字

listen = 127.0.0.1:9000

文件:/etc/nginx/nginx.conf

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        gzip on;
        gzip_disable "msie6";

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

文件:/etc/nginx/sites-available/default

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
        root /home/user/www;
        index  index.php index.html index.htm;
        autoindex on;
        server_name _;
        error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        }
        location ~ \.php$ {
                # Try a document root
                root /home/user/www

                # try_files $uri =404;
                #fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                #fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

当出现错误(下载而不是处理页面)时,查看日志文件
时没有任何内容显示:tail -f

  • /var/log/php5-fpm.log
  • /var/log/nginx/error.log
  • /var/log/nginx/access.log

这个配置有什么问题?

答案1

您的location ~ \.php$root /home/user/www,这是不必要的,因为相同的root已经在服务器级别定义。定义也缺少分号。

因此,删除多余的root定义,看看是否有帮助。

答案2

尝试放置移动线

include fastcgi_params;

从块中的最后一个到第一个

location ~ \.php$ {

因为它将重新加载默认参数,所以你的自定义参数将被替换

相关内容