403 Forbidden
私の設定:
/etc/nginx/sites-available/default
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;
}
}
更新
私はこの指示に従いました: here
これに関するヒント/提案は大きな助けになります!
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/
を指していた場合、インデックスファイルはなく、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がリストされたインデックスオプションを見つけることができない場合です。
サーバーブロックでは、ディレクトリリスト(末尾のスラッシュで終わるURI)が要求されたときに、index.php、index.html、index.htmの順に次の場所を試すようにnginxに指示しています。
これらのファイルが見つからない場合、ディレクトリインデックス要求は失敗します。
私の最善の推測は、index.phpファイルが間違った場所にあることです。 ssc-portalフォルダーから上に移動しましたか?