РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcPhNgSh 11 of 30 menu
◀ ▶

Общая папка сайта в Docker

Общая папка сайта должна называться одинаково в обоих контейнерах, иначе веб-сервер ищет файл не там, где его видит интерпретатор. Nginx строит путь из root и имени запроса, а FPM открывает файл по SCRIPT_FILENAME - оба значения должны указывать на один и тот же каталог внутри копий.

Связка снова состоит из web на nginx и app на php:8.5-fpm. Порт 8080:80 остаётся у веб-сервера, FPM снаружи не слушает. Строка root в конфиге nginx и правая часть тома у сервиса PHP - одна строка /var/www/html.

Слева в томе для обоих сервисов лежит папка проекта на диске, справа всегда /var/www/html. Менять только путь у nginx на /usr/share/nginx/html, оставив FPM на /var/www/html, нельзя: запрос дойдёт до интерпретатора с путём, которого нет в его контейнере. В default.conf root совпадает с томом:

server { listen 80; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass app:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

Файл compose.yaml:

services: web: image: nginx ports: - "8080:80" volumes: - ./site:/var/www/html - ./default.conf:/etc/nginx/conf.d/default.conf app: image: php:8.5-fpm volumes: - ./site:/var/www/html

Сценарий site/index.php печатает hello:

<?php echo 'hello';

После подъёма в фоне страница по localhost:8080 снова показывает hello, потому что оба контейнера видят один файл по одному пути. Запуск проекта:

docker compose up -d

Опишите сервисы gate и php с общим каталогом ./www и ответом same, не разводя разные пути внутри контейнеров.

Убедитесь, что текст на localhost:8080 совпадает с содержимым index.php на диске.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить