Nginx不提供PHP文件

时间:2016-10-10 01:13:35

标签: php linux nginx

我安装了新的CentOS7并作为VM运行。我正在玩Nginx,因为我一直在使用Apache,现在只是为了好玩而学习我决定切换到Nginx。我正在关注这两个指南:

作为我之前研究的一部分,在我发表意见之前,我确实阅读了this,但这根本没用。

在继续之前,我应该说我为每个人提供了我需要的东西,因为我想使用PHP 7.0.x而不是CentOS 7 repos附带的默认值(5.4我认为)。

所以,这就是我的配置文件的样子:

/etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  centos7.localdomain;  
    root   /var/www/html;
    index  index.php index.html index.htm;

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

    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

/etc/php-fpm.d/www.conf

[www]
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

...

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = nobody
listen.group = nobody

对于www.conf,除了这些值之外,您在此处看到的是默认值。完整文件为shared here

我创建的文件/var/www/html/index.php只有以下内容:

<?php
    phpinfo();

只要我尝试使用网址http://centos7.localdomain/index.php(或没有index.php),就会下载文件,而不是显示内容。

当然,在完成所有这些更改后,我重新启动了nginxphp-fpm服务,并通过运行systemctl status nginx.servicesystemctl status php-fpm.service

进行检查

/var/www/html的权限如下:

$ ls -la /var/www/html/
total 4
drwxr-xr-x. 2 root root 22 Oct  9 20:53 .
drwxr-xr-x. 3 root root 17 Oct  9 20:24 ..
-rw-r--r--. 1 root root 18 Oct  9 20:53 index.php

这是我正在运行的PHP版本:

$ php -v
PHP 7.0.11 (cli) (built: Sep 14 2016 08:28:52) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.11, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans

我在这里遗失了什么?如果是这样的话是什么?或者我正在玩这个设置有什么问题?

1 个答案:

答案 0 :(得分:1)

删除&#34; try_files $ uri = 404&#34;来自最后一段。这可以解决您的问题。

location ~ \.php$ {
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}