Nginx - 无法从其他目录打开 php 文件 -ERR:失败(13:权限被拒绝)

Nginx - 无法从其他目录打开 php 文件 -ERR:失败(13:权限被拒绝)

我已经在笔记本电脑(运行 Arch Linux)上设置了 nginx、php-fpm、mysql 和 phpMyAdmin。在我尝试移动主目录中的根目录之前,一切都正常。

下面是我正在使用的 nginx 配置文件:

#user html;
#user root root;

worker_processes  2;

error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        ############### General Settings ###################
        listen       80;
        server_name  localhost;
        root   /home/me/Development;
        charset utf-8;

        ############## Document Root #####################
        location  / {
            index  index.php index.html index.htm;
            autoindex on;
        }

        ############## PHPMyAdmin #######################
        location /phpmyadmin {
            rewrite ^/* /phpMyAdmin last;
        }

        ############# Error redirection pages ################
        error_page  404               NGINX/html/404.html;
        error_page  500 502 503 504   NGINX/html/50x.html;

        ############## Proxy Settings for FastCGI PHP Server #####
        location ~ \.php$ {

            try_files  $uri =404;
            #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi.conf;
        }

        location ~ /\.ht {
            deny  all;
        }

    }         
}

当我尝试访问 php 文件(localhost/phpMyAdmin)时出现以下错误:

2016/05/20 16:33:12 [error] 8145#8145: *2 "/home/me/Development/phpMyAdmin/index.php" is forbidden (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET /phpMyAdmin/ HTTP/1.1", host: "localhost"

我尝试更改“Development”文件夹的权限(777 - 不是一个好主意)和所有者(用户名:用户名),但没有成功。

我还在 nginx.conf 文件中添加了以下行:

user root root;

但这导致 php-fpm 连接错误。我的 php.ini 中也有这行代码,以确保新目录是 php 允许的路径。

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/usr/:/home/me/Development/

知道我做错了什么吗?

答案1

您的主目录受到保护,其他用户无法读取。以 root 身份启动 nginx 是一个非常糟糕的主意。如果您确实需要将项目放在主目录中,请尝试以您登录的用户身份启动 nginx 和 php-fpm。不要忘记 chown 所有 nginx 服务目录(/var/run/nginx 等)

相关内容