
nginxの設定ファイルのlocation
ディレクティブにallow all;
を追記すると解決した。
この記事通りにやってうまくいかなかったので、覚書として残しておく。
【超入門】20分でLaravel開発環境を爆速構築するDockerハンズオン - Qiita
nginxの設定ファイル編集
自分の場合はdocker環境なので、
infra\nginx\default.conf
を編集
docker環境じゃなければ/etc/nginx/conf.d/default.conf
とかになると思う。
server {
listen 80;
server_name example.com;
root /data/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
#このコードだと404エラーになる
# location / {
# try_files $uri $uri/ /index.php?$query_string;
# }
location / {
try_files $uri $uri/ /index.php?$query_string;
# 以下を追加
index index.html index.htm index.php;
allow all; # 全てのIPからのアクセスを許可
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass app:9000;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
ほかに試したこと
コンテナに入って、/data/public
の権限を755にしたけど、多分関係なかったと思う。
このディレクトリを触ろうと思ったのは、nginx用のdefault.conf
4行目root /data/public;
とあることが根拠