Regex Nginx为CSS/JS文件提供403错误

Regex Nginx为CSS/JS文件提供403错误,regex,nginx,http-status-code-403,Regex,Nginx,Http Status Code 403,我已经在Ubuntu10.10上安装了nginx 0.7.67以及php cli。我正在尝试运行基于前端控制器的PHP框架,但除index.PHP之外的所有页面都出现403错误 例: -403禁止 -403禁止 -工作 我的/etc/nginx/sites enabled/default如下 server { listen 80; server_name mysite.com; access_log /var/log/nginx/ac

我已经在Ubuntu10.10上安装了nginx 0.7.67以及php cli。我正在尝试运行基于前端控制器的PHP框架,但除index.PHP之外的所有页面都出现403错误

例:

  • -403禁止
  • -403禁止
  • -工作
  • 我的/etc/nginx/sites enabled/default如下

    server {
        listen          80;
        server_name     mysite.com;
    
        access_log      /var/log/nginx/access.log;
        error_log       /var/log/nginx/error.log warn;
    
        index           index.php index.html;
        root        /full/path/to/public_html;
    
        location ~* \.(js|css|png|jpg|jpeg|gif|ico|html)$ {
                expires max;
        }
    
    
        location ~ index.php {
                include     /etc/nginx/fastcgi_params;
                keepalive_timeout 0;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_pass    127.0.0.1:9000;
        }
    
    }
    
    对如何解决上述问题有何建议

    PS:这是错误日志中的条目

    2010/10/14 19:56:15 [error] 3284#0: *1 open() "/full/path/to/public_html/styles/style.css" 
    failed (13: Permission denied), client: 127.0.0.2, server: quickstart.local, 
    request: "GET /styles/style.css HTTP/1.1", host: "mysite"
    

    在您的位置行中尝试以下操作:

    location ~* ^.+\.(js|css|png|jpg|jpeg|gif|ico|html)$ {
    

    服务器{
    听80;
    服务器名称mysite.com;
    access\u log/var/log/nginx/access.log;
    error\u log/var/log/nginx/error.log warn;
    index.php index.html;
    root/full/path/to/public\u html;
    
    }确保每个顶级目录都有权限级别和index.html。大多数情况下,您只需复制您希望在/www中看到的文件并将其重命名为index.html,确保新的index.html具有正确的权限(当然,要确保777仅用于测试)。

    也有同样的问题。只需在我的CSS和JS文件和文件夹上设置正确的权限,即可修复此问题。设置权限时要小心!但是,要使文件在web上可读,它必须由运行服务器进程的用户可读

    chmod -R +rx css
    chmod -R +rx js
    

    授予读取和执行权限。
    -R
    用于递归。仅对您希望世界可读的文件执行此操作

    Alt解决方案:通过编辑nginx.conf(例如,/usr/local/nginx/conf/nginx.conf)将运行用户更改为这些文件的所有者:

    user myuser mygroup;
    

    我需要写这个问题的替代解决方案。 我将wordpress迁移到plesk服务器中,在css和js脚本中出现了这个错误。 Nginx配置在获取js和css文件时产生错误。 如果wordpress加载CSS和JS脚本时出错(禁止), 这可能是由于nginx和apache的配置

    解锁配置nginx和apache的框:

    智能处理静态文件->不检查

    这解决了我的问题。我也希望其他人
    pymessoft.com

    错误日志显示2010/10/14 19:56:15[错误]3284#0:*1 open()“/home/adil/NetBeansProjects old/CrowdSourcedWeb/applications/csw/web/styles/style.css”失败(13:权限被拒绝),客户端:127.0.0.2,服务器:quickstart.local,请求:“GET/styles/style.css HTTP/1.1”,主机:“quickstart.local”每当js或css文件名中有一个额外的点时,我就会遇到这个问题,即:bootstrap.min.css而不是bootstrap.css。在我的nginx配置中添加了top选项并解决了问题位置标记必须在服务器标记内。这很奇怪,在我的情况下,它在定义位置之前与关闭服务器{}一起工作。但我很高兴你找到了解决办法!马丁。为了解释我上面的评论,我之所以这么说是因为nginx抱怨。将位置标记保留在服务器标记之外是“非法的”。也许你应该再次查看你的配置文件,看看它为什么会这样做。很高兴知道。并且,感谢您的帮助。位置标记应该在服务器标记Dammit中。这是Linux权限问题。其中一个顶级目录没有其他目录的“r”权限。问题解决了。同意。我只是将所有文件的权限改为755,并让www数据成为文件夹的所有者,一切都开始工作。777“只是为了确保”是个糟糕的主意。“我有钥匙,但我应该让前门不上锁,以确保我能进去。”应该是
    chmod-R+rx css
    吗?@MichaelButler谢谢。但Mac OS X不接受它。这为我解决了它。谢谢
    chmod -R +rx css
    chmod -R +rx js
    
    user myuser mygroup;