概要
docker-compose
を使って、nginx+phpfpm+CakePHP3でコンテナを立ち上げたが、CakePHP3のwelcome画面にてcssがすべて404になっていた。 (正確には .php
以外のファイルが404)
結論
docker-compose.yml
のnginx
方にもphpfpm
と同様に volumes
を指定してあげると良い。
経緯
こちらの記事を参考にさせて頂いて、
https://qiita.com/mochizukikotaro/items/b398076cb57492980447
https://github.com/mochizukikotaro/docker-nginx-phpfpm/tree/simple
よし、俺も爆速でCakePHP3を動かしてみるかと業務時間中に遊んでいたのだけど、CakePHP3のwelcome画面でCSSが全く効いていない。 .php
は問題ないので、nginxのdefault.confを見直すも、特に問題なさそう。落ち着いていくつかの記事を漁ったところ 結論
に書いた方法でうまくいきました。
こちらの記事にもちょっとそのような事が書いてありました。
https://oki2a24.com/2018/07/30/point-of-nginx-php-fpm-simple-doccker-compose/
あるいは、nginx
コンテナのdefault.confを、↓のようにして、
location ~\.(php|html|css)$ {
php-fpm
コンテナ側の security.limit_extensions
に .html
や.css
を追加してやればそちらで処理することも可能なのかもしれないが、nginx+phpfpmでの正解をいまいち分かっていないため、こちらはとりあえずやってません。( limit_extensions
を記載しない状態では、php以外は403 )
ベストプラクティス知ってる偉い人がいたらぜひ教えてほしい。