403 Запрещено на nginx/1.4.6 (Ubuntu) - Ларавел
Я продолжаю получать 403 Forbidden
![введите описание изображения здесь]()
Мои настройки:
/etc/nginx/sites-available/default
по умолчанию
server {
listen 80;
root home/laravel-app/;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
# pass the PHP скриптs to FastCGI server listening on the php-fpm socket
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Обновление
Я выполнил эту инструкцию: здесь
Любые подсказки/предложения по этому поводу будут огромной помощью!
Ответы
Ответ 1
Вам нужно указать абсолютный путь для вашей директивы root
. Nginx использует набор каталогов во время компиляции с помощью переключателя --prefix. По умолчанию это /usr/local/nginx
.
Это означает, что ваш root, который в настоящее время настроен на root home/laravel-app/
, вызывает nginx для поиска файлов в /usr/local/nginx/home/laravel-app/
, которые, предположительно, не там, где находятся ваши файлы.
Если вы установите директиву root
на абсолютный путь, такой как /var/www/laravel-app/public/
nginx найдет файлы.
Аналогичным образом вы заметите, что я добавил /public/
к указанному выше пути. Это потому, что Laravel хранит там файл index.php
. Если бы вы просто указали на /laravel-app/
, там не был бы индексный файл, и он дал бы вам 403.
Ответ 2
вам нужно иметь правило для php файлов (в файле по умолчанию)
# pass the PHP скриптs to FastCGI server listening on (...)
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Ответ 3
Ошибка, добавленная вами в обновление, указывает, что nginx пытается указать индекс каталога из вашей папки ssc-portal. Поскольку вы, как представляется, используете базовую установку nginx, единственная причина, по которой индекс каталогов должен прерываться, заключается в том, что nginx не может найти перечисленные параметры индекса.
В вашем блоке сервера вы сообщаете nginx, чтобы попробовать следующие местоположения, когда запрашивается список каталогов (URI, который заканчивается конечной косой чертой): index.php, index.html, затем index.htm.
Если ни один из этих файлов не найден, запрос индекса каталога не выполняется.
Мое лучшее предположение: у вас есть файл index.php в неправильном месте. Вы переместили его из папки ssc-портала?