nginx ブラウザに403 Forbiddenのエラーが表示される場合

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;とあることが根拠

無制限に質問可能なプログラミングスクール!

万が一転職できない場合は、転職保障全額返金できるコースもあり!!

無制限のメンター質問対応

 

DMMウェブキャンプでプログラミングを学習しませんか?

独学より成長スピードをブーストさせましょう!

 

まずは無料相談から!

おすすめの記事