Nginx дает ошибку 403 для файлов CSS/JS
у меня есть настройка nginx 0.7.67 на Ubuntu10.10 вместе с php-cli . Я пытаюсь запустить PHP-фреймворк на основе фронтального контроллера, но все страницы, кроме index.php дает ошибку 403.
Ex:
- http://mysite.com/styles/style.css - 403 запрещено
- http://mysite.com/scripts/script.css - 403 запрещено
- http://mysite.com/index.php - работает
мой /etc/nginx/sites-включено / по умолчанию следующим образом
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 ответов
была та же проблема. Исправлено, просто установив правильные разрешения на мои файлы и папки CSS и JS. Будьте осторожны с настройкой разрешений! Но для того, чтобы файл был читаемым в интернете, он должен быть читаемым пользователем, выполняющим серверный процесс.
chmod -R +rx css
chmod -R +rx js
дает разрешения на чтение и выполнение. The -R
для рекурсивных. Только сделать это для файлов, которые вы хотите, читаемый миром!
Alt решение: измените пользователя запуска, отредактировав nginx.конф (например, /usr/местные/nginx в/конф/с nginx.conf) владельцу этих файлов:
user myuser mygroup;
попробуйте это в вашем расположении:
location ~* ^.+\.(js|css|png|jpg|jpeg|gif|ico|html)$ {
или
location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|html)$ {
Мне нужно написать альтернативное решение этой проблемы. Перенести wordpress на сервер Plesk и я получаю эту ошибку с помощью CSS и JS скриптов. Конфигурация Nginx создает ошибку при получении файлов JS и css. Если wordpress ошибка загрузки CSS и js скрипты (запрещено), это может быть связано с конфигурацией nginx и apache.
откройте окно конфигурации nginx и apache:
интеллектуальная обработка статических файлов - > DONT CHECKED
Это решает мою проблема. Я надеюсь, что другие тоже pymessoft.com
убедитесь, что каждый каталог верхнего уровня имеет уровни разрешений и индекс.формат html. В большинстве случаев вы просто скопируете файл, который хотите увидеть в /www, и переименуете его в индекс.html убедитесь, что новый индекс.html имеет правильные разрешения (чтобы быть уверенным 777 только для тестирования курса).
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, если у вас нет доступа к файлам.