Docker-ApacheでDocumentRouteが変わらずLaravelが動かなかった理由

Docker-ApacheでDocumentRouteが変わらずLaravelが動かなかった理由

Docker-ApacheでDocumentRouteが変わらずLaravelが動かなかった理由

マジで疲れました…。
Dockerの無い通常の仕様では苦も無くDocumentRoute変えてるので「何で出来ないんだ!」と…もう泣いてました。

CentOSでそのまま動かしている場合はOS内のhttpd.confのドキュメントルート変えるだけで簡単に変更できます。
なので、Dockerでも同じだろうと読み込ませるファイルのドキュメントルートを変えました。
でもLaravelが出てこない。何やってもうまくいかないのでindex.phpをProjectトップに置いたらこいつが出てきやがるわけです。

先に判明した理由を書いてしまいます。

Dockerfile 内のRUNでDocumentRouteを読込ませてもファイル名によっては採用されません。

今回作っていた構成

作成していたファイル構成はこんな感じです。

Laravel-Docker
├── docker/
│ ├── php/
│ │ └── php.ini
│ ├── mysql/
│ └── web/
│   ├── Dockerfile
│   ├── httpd-base.conf
│   └── supervisord.conf

├── docker-compose.yml
└── Laravel-Project/

ちゃんと参考サイトを見て、最初に見た参考サイトで書いてあったファイル名にしたのですが、これが落とし穴でした。

読込ファイル名にhttpd-base.confを記載しても書き換えが起こらない

今回発覚した問題がココ。

同じ内容を記載しているにもかかわらず、ファイル名を 000-default.conf に変えただけで意図した動きになりました。

まさかこんな所に原因があると思ってなかったので、Dockerfile書き換えて、httpd-base.confの書き方変えてみて、利用イメージをApacheからCentOSに切り替えてみたり3日にわたり試行錯誤。

結果、こんな感じでまとまりました。

ApacheのDockerfile

000-defuault.conf ※httpd-base.confというファイル名だと動かない

docker-compose.yml

残す所はDBのコピーとSSL設定

今のところはDockerテスト用のサーバーで実験している状態なので、ここにのDBにレコード入れて動き確認して本番サーバーで稼働実験して、Docker-Laravelの正式採用という感じですね。

SSLはラストかな。

まとめ

いやぁ~解決できてよかった。

頭疲れすぎて今日は一日終わったような感覚です。
疲れたぁ~。