403当根目录更改时禁止在本地nginx上

时间:2016-05-20 11:13:36

标签: nginx

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

以下是我使用的nginx配置文件:

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$ {
         if ($request_uri ~* /phpmyadmin) {
            root /usr/share/nginx/html;
        }

        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项目的文件夹。我想将phpMyAdmin保留在其默认位置。 现在,如果我尝试在新位置访问phpMyAdmin或任何php文件,我会收到403 Forbidden - 错误消息:

2016/05/20 14:11:46 [crit] 5292#5292: *3 stat() "/home/me/Development/test.php" failed (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET /test.php HTTP/1.1", host: "localhost"

它应该对linux组和权限做些什么,但无法弄明白。

4 个答案:

答案 0 :(得分:0)

如果用户是sudo,请使用ls -l命令检查文件夹的所有者和模式,然后运行此sudo chown -R yourusername:yourusername Development并运行sudo chmod -R 777 Development

答案 1 :(得分:0)

您正在使用HTTP来获取您的网页。现在HTTP返回错误代码'403',根据RFC 2616的意思是“服务器理解请求,但拒绝履行请求。授权无效,请求不应重复。”

此错误代码的两个可能原因

Authentication was provided, but the authenticated user is not permitted to perform the requested operation.
The operation is forbidden to all users. For example, requests for a directory listing return code 403 when directory listing has been disabled.

尝试检查您的文件权限。有解决方案。

答案 2 :(得分:0)

我有一个类似的问题:我也收到403错误代码,并尝试使用chmod 777配置文件的权限。结果仍然相同。 我的问题是我用sudo nginx启动了Nginx Web服务器,而不是用我的用户和我的权利启动了它。只需使用nginx而不使用sudo来启动服务器,就可以了。 我希望这对某人有帮助。

答案 3 :(得分:0)

这是selinux,google将其禁用或将其配置为允许您需要执行的操作。 当您的权限设置正确并且日志显示“权限被拒绝”时,它就是selinux。