laravel+apacheでTesting 123...と出てしまう問題の解決法

f:id:rasukarusan:20190126020540p:plain

サーバーにlaravelで作ったアプリを設置するときに若干詰まった。

結局シンプルな変更漏れっていうオチなんですけどね。

解決1

DOCUMENT_ROOTを設定するときにhttpd.confの設定で変更漏れがあった。

DocumentRoot /var/www/html/laravel-app/public
ServerName example.com

#<Directory "/var/www/html">
<Directory "/var/www/html/laravel-app/public"> # ←こっちも変更する
...

解決2

いざAPIを叩こうと思ったら以下のエラー。

f:id:rasukarusan:20190126015937p:plain

ディレクトリの権限は変更済みだしなんでだろうと思って色々調べたら解決方法が出てきた。

.htaccessの先頭に以下を追加

Options +FollowSymLinks

.htaccess

Options +FollowSymLinks
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
...

しっかりLaravelのドキュメントに書いてあったんだけどローカルでテストしていた時は出なかったエラーなのでちょっと詰まった。

Options +FollowSymLinksは「シンボリックリンクを許可する」という設定だが、どうやらmod_rewriteが内部でシンボリックリンクを使っているので必要になるっぽい。(laravelとは無関係)

httpd.apache.org

これもしっかりApacheのドキュメントに書いてあるんだよなあ...

まとめ

一回まとまった時間とってapacheやnginxとかhttpdとかインフラの基礎的なところ勉強しないとやばい。

あとやっぱりリリース作業まですると色々学ぶこと多いなあと思タヨ。