前提・実現したいこと
さくらVPS(CentOS7)、nginxでのlaravelウェルカムページの表示
ローカルで作ったlaravelプロジェクトをさくらVPSにgithub経由で上げようとして、詰まったため
まずは、上記を実現したいです。
nginxやphp-fpmの権限の問題と思っていたのですが、バーチャルホストのドキュメントルートに置いた、同じ権限のindex.phpは普通にドメイン名検索で表示されたため、laravelに原因があるのかなって考えています。
laravel内のindex.phpを表示するのに特別な設定がいるのでしょうか?
発生している問題・エラーメッセージ
- ドメイン名で検索しても403 Forbidden nginx
の画面が出てくる。
- バーチャルホストのドキュメントルートにあるindex.phpは表示される。laravelプロジェクトの中(プロジェクト名/public/index.php)だと表示されない。
試したこと
公式ドキュメントを見て、サーバー用件の確認。
実行ユーザーと権限の確認。ファイルディレクトリの読み取り権限等。
nginxとphp-fpmの再起動。
プロジェクト消してもう一度やり直し。
補足情報(FW/ツールのバージョンなど)
CentOS7
php 7.3.22
php-fpm 7.3.22
Nginx 1.18.0
Larval8
- サーバー用件
PHP >= 7.3 ok
BCMath PHP拡張 ok
Ctype PHP拡張 ok
Fileinfo PHP extension ok
JSON PHP拡張 ok
Mbstring PHP拡張 ok
OpenSSL PHP拡張 ok
PDO PHP拡張 ok
Tokenizer PHP拡張 ok
XML PHP拡張 ok
-
vpsuserユーザでcomposer create-projectでバーチャルホストのドキュメントルートにプロジェクト作成。
-
.envファイルの編集。
-
Composer install
-
php artisan key:generate
-
storageとbootstrap/cache/
は
chmod -R 777
にしている。
- Nginx、php-fpmの実行ユーザーはnginx
- Nginxはvpsuserグループに追加している
- バーチャルホストの設定
server { listen 80; server_name nanyanenvh1.xyz; access_log /var/log/nginx/nanyanenvh1.xyz-access.log main; error_log /var/log/nginx/nanyanenvh1.xyz-error.log; root /home/vpsuser/nanyanenvh1.xyz/ApexAPI/public; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { root /home/vpsuser/nanyanenvh1.xyz/ApexAPI/public; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
回答1件
あなたの回答
tips
プレビュー