さとうナイトニッポン

やったことのメモとか日々の雑記とか

laravelのルーティングがうまくいかない(nginx)

5.2の場合はroutesディレクトリがないので、/path/tp/proj/app/Http/routes.php にルーティング追加するも
ルーティングがうまくいかない。/だけ見られる状態。

環境

  • laravel 5.2
  • nginx

解決策

色々やったけど結局confファイルを以下の通りに書き換えたらいけた
(nginxでは.htaccessmod_rewriteも使えないのでpublic以下の.htaccessが効いてなかったぽい?)

server {
    # サーバのデフォルトTCPポート
    listen  80;
    # サーバ名
    server_name     gorilla.jp;
    # ドキュメントルート
    root    /var/www/gorilla.jp/public;
    # index file タイプの優先順
    index   index.php index.html index.htm;
    # ログファイル名
    access_log  /var/log/nginx/gorilla.jp/access.log;
    error_log   /var/log/nginx/gorilla.jp/error.log;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # php fpm との接続を行うため拡張子phpに対して処理
    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include         fastcgi_params;
     }
}

参考

nginxで権限を設定した後も403 Forbiddenが出た話 - サナギわさわさ.json

Laravelでroutingは合ってるはずなのに404not foundが出るときにやること|Laravel|私の生き方にタイトルなど要らない