私は同じ問題を抱えていましたが、テスト中に両方の問題に直面しました。
1º: 「ファイルが見つかりません」
と
2º: 404 エラー ページ
そして、私の場合、次のことがわかりました。
Nginx ボリュームと PHP ボリュームの両方に、パブリック フォルダー用のボリュームをマウントする必要がありました。
Nginxにマウントされていて、 PHPにマウントされていない場合、「ファイルが見つかりません」というメッセージが表示されます。
例 (「ファイルが見つかりません」というエラーが表示されます):
services:
php-fpm:
build:
context: ./docker/php-fpm
nginx:
build:
context: ./docker/nginx
volumes:
#Nginx Global Configurations
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/conf.d/:/etc/nginx/conf.d
#Nginx Configurations for you Sites:
# - Nginx Server block
- ./sites/example.com/site.conf:/etc/nginx/sites-available/example.com.conf
# - Copy Public Folder:
- ./sites/example.com/root/public/:/var/www/example.com/public
ports:
- "80:80"
- "443:443"
depends_on:
- php-fpm
restart: always
PHPにマウントされていて、 Nginxにマウントされていない場合、404 ページが見つかりませんというエラーが発生します。
例 (404 Page Not Found エラーをスローします):
version: '3'
services:
php-fpm:
build:
context: ./docker/php-fpm
volumes:
- ./sites/example.com/root/public/:/var/www/example.com/public
nginx:
build:
context: ./docker/nginx
volumes:
#Nginx Global Configurations
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/conf.d/:/etc/nginx/conf.d
#Nginx Configurations for you Sites:
# - Nginx Server block
- ./sites/example.com/site.conf:/etc/nginx/sites-available/example.com.conf
ports:
- "80:80"
- "443:443"
depends_on:
- php-fpm
restart: always
そして、これは問題なく機能します(両側にマウント)(他のすべてが適切に構成されており、あなたが私と同じ問題に直面していると仮定します):
version: '3'
services:
php-fpm:
build:
context: ./docker/php-fpm
volumes:
# Mount PHP for Public Folder
- ./sites/example.com/root/public/:/var/www/example.com/public
nginx:
build:
context: ./docker/nginx
volumes:
#Nginx Global Configurations
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/conf.d/:/etc/nginx/conf.d
#Nginx Configurations for you Sites:
# - Nginx Server block
- ./sites/example.com/site.conf:/etc/nginx/sites-available/example.com.conf
# - Copy Public Folder:
- ./sites/example.com/root/public/:/var/www/example.com/public
ports:
- "80:80"
- "443:443"
depends_on:
- php-fpm
restart: always
また、複数のサイトにサービスを提供するために、Nginx/Php を使用した完全に動作するサンプル プロジェクトもあります:
https://github.com/Pablo-Camara/simple-multi-site-docker-compose-nginx-alpine-php-fpm-alpine-https -ssl-証明書
これが誰かの役に立てば幸いです。もし誰かがこれについてもっと知っているなら、私に知らせてください、ありがとう!