Я продолжаю получать 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 scripts 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; } }
Обновить
Я следовал этой инструкции: здесь
Любые подсказки / предложения по этому поводу будут огромной помощью!
Вам нужно указать абсолютный путь для вашей root
директивы. Nginx использует набор каталогов во время компиляции с помощью переключателя –prefix. По умолчанию это /usr/local/nginx
.
Это означает, что ваш корень, который в настоящее время установлен в корневой каталог home/laravel-app/
вызывает nginx для поиска файлов в /usr/local/nginx/home/laravel-app/
которые, по-видимому, не там, где находятся ваши файлы.
Если вы установите root
директиву на абсолютный путь, такой как /var/www/laravel-app/public/
nginx, вы найдете файлы.
Аналогично, вы заметите, что я добавил /public/
в путь выше. Это потому, что Laravel хранит там файл index.php
. Если бы вы просто /laravel-app/
на /laravel-app/
нет индексного файла, и он дал бы вам 403.
вам нужно иметь правило для php-файлов (в файле по умолчанию)
# pass the PHP scripts 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; }
Ошибка, добавленная в вашем обновлении, указывает, что nginx пытается указать индекс каталога из вашей папки ssc-portal. Поскольку вы, как представляется, используете базовую установку nginx, единственная причина, по которой здесь не работает индекс каталога, заключается в том, что nginx не может найти перечисленные параметры индекса.
В своем блоке сервера вы указываете nginx попробовать следующие местоположения, когда запрашивается список каталогов (URI, который заканчивается конечной косой чертой): index.php, index.html, затем index.htm.
Если ни один из этих файлов не найден, запрос индекса каталога не выполняется.
Мое лучшее предположение: у вас есть файл index.php в неправильном месте. Вы переместили его из папки ssc-portal?