Как исправить ошибку загрузки файлов assets при открытии yii2 проекта запущенного с docker compose?
Запущен проект через docker compose c двумя сервисами:
1. nginx
2. php-fpm
Похоже что контейнер nginx не может получить доступ к файлам assets в контейнере php-fpm. Подскажите, пожалуйста, как это можно сделать.
конфиг создавался на базе того, что указан в руководстве https://www.yiiframework.com/doc/guide/1.1/ru/quic....
У вас получалось настроить работу приложения при работе nginx, php-fpm в разных docker контейнерах?
Как я понял assets формируются при запросе в php-fpm контейнере, и если не использовать общий volume для nginx, php-fpm контейнеров, то контейнер nginx не получит доступ к сгенерированным внутри контейнера php-fpm файлам assets, т.к. внутри php-fpm контейнера запускается только процесс php-fpm, который обрабатывает php-код.
У вас получалось настроить работу приложения при работе nginx, php-fpm в разных docker контейнерах?
Да, у меня в такой связке блог работает.
Как я понял assets формируются при запросе в php-fpm контейнере,
Скорее нет. На скрине видно, что 404 на js и css файлы, а это статика.
и если не использовать общий volume для nginx, php-fpm контейнеров, то контейнер nginx не получит доступ к сгенерированным внутри контейнера php-fpm файлам assets
Это работает не так. Да, файлы сайта должны быть смонтированы и в nginx, и в php-fpm контейнер, но по другой причине. Nginx отдает статику напрямую, если же запрашивается php файл, nginx передает запрос в php-fpm, в параметрах которого указание какие файлы ему надо обработать, затем получает ответ и отдает все клиенту.
Вот пример как должно работать. Не смотрите на pagespeed и memcached, а только на nginx и php-fpm
2022/12/30 18:58:33 [error] 31#31: *1 FastCGI sent in stderr: "Unable to open primary script: /var/www/html/web/var/www/html/api_v1/web/index.php (No such file or directory)" while reading response header from upstream, client: 172.31.0.1, server: _, request: "GET /api_v1/game/list HTTP/1.1", upstream: "fastcgi://172.31.0.4:9000", host: "127.0.0.1:8080", referrer: "http://127.0.0.1:8080/list"
mureevms, переделал nginx.conf, теперь видно стартовую страницу yii2, но похоже параметры url не передаются в php-fpm контейнер, чтобы yii2 разбирал запросы вида `/api/controller/method`
nginx.conf: