Nginx выдает ошибку 403 для файлов CSS / JS - PullRequest
10 голосов
/ 14 октября 2010

Я установил nginx 0.7.67 на Ubuntu10.10 вместе с php-cli. Я пытаюсь заставить работать мой PHP-фреймворк на основе фронт-контроллера, но все страницы, кроме index.php, выдают ошибку 403.

Пример:

  1. http://mysite.com/styles/style.css - 403 Запрещено
  2. http://mysite.com/scripts/script.css - 403 Запрещено
  3. http://mysite.com/index.php - Работы

Мой / 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"

Ответы [ 6 ]

19 голосов
/ 13 декабря 2013

Была такая же проблема. Исправил это, просто устанавливая правильные права на мои файлы и папки CSS и JS. Будьте осторожны с настройкой разрешений! Но чтобы файл был доступен для чтения в Интернете, он должен быть доступен для чтения пользователю, выполняющему процесс сервера.

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

Дает разрешения на чтение и выполнение. -R для рекурсии. Делайте это только для файлов, которые вы хотите, чтобы мир мог их прочитать!

2 голосов
/ 05 августа 2014

Альтернативное решение: измените пользователя запуска, отредактировав nginx.conf (например, /usr/local/nginx/conf/nginx.conf) в владельца этих файлов:

user myuser mygroup;
0 голосов
/ 04 января 2018

Мне нужно написать альтернативное решение этой проблемы.Я переношу WordPress на сервер Plesk и получаю эту ошибку с помощью скриптов css и js.Конфигурация Nginx выдает ошибку при получении файлов js и css.Если во время загрузки WordPress происходит ошибка при загрузке скриптов CSS и JS (запрещено), это может быть связано с конфигурацией nginx и apache.

РАЗБЛОКИРОВАТЬ окно конфигурации nginx и apache:

Интеллектуальная обработка статическихfiles -> DONT CHECKED

Это решает мою проблему.Я надеюсь, что другие тоже pymessoft.com

0 голосов
/ 20 августа 2012

Убедитесь, что у каждого каталога верхнего уровня есть уровни разрешений И index.html.В большинстве случаев вы просто копируете файл, который хотите видеть в / www, и переименовываете его в index.html, чтобы убедиться, что новый index.html имеет необходимые разрешения (чтобы убедиться, что 777 только для проверки курса).

0 голосов
/ 15 октября 2010
    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;

} <--- you forgot this one

        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;
        }

    }

Вы должны закрыть сервер {} перед определением местоположения.

или изменить владельца файлов на www-data или apache, если у вас нет доступак файлам.

0 голосов
/ 14 октября 2010

Попробуйте в строке местоположения:

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

или

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