Следующая конфигурация правильно обслуживает экземпляр WordPress. (Некоторые несоответствующие детали конфигурации опущены для краткости.)
докер-compose.yml
version: "3.7"
services:
nginx:
image: nginx:alpine
links:
- wordpress-1
volumes:
- wordpress-1_files:/var/www/html
wordpress-1:
image: wordpress:php7.3-fpm-alpine
volumes:
- wordpress-1_files:/var/www/html
volumes:
wordpress-1_files:
WordPress-1.conf
server {
server_name wordpress-1.com;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_pass wordpress-1:9000;
}
}
Однако я бы хотел смонтировать том wordpress-1_files
в подкаталог (/var/www/html/wordpress-1
) в контейнере nginx
(чтобы я мог обслуживать несколько приложений из одного прокси-сервера NGINX). Приведенная ниже конфигурация возвращает 404
с File not found.
в теле ответа. Этот результат происходит с любой из двух SCRIPT_FILENAME
строк в wordpress-1.conf
ниже.
докер-compose.yml
version: "3.7"
services:
nginx:
image: nginx:alpine
links:
- wordpress-1
volumes:
- wordpress-1_files:/var/www/html/wordpress-1
wordpress-1:
image: wordpress:php7.3-fpm-alpine
volumes:
- wordpress-1_files:/var/www/html
volumes:
wordpress-1_files:
WordPress-1.conf
server {
server_name wordpress-1.com;
root /var/www/html/wordpress-1;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
# fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME /var/www/html/wordpress-1$fastcgi_script_name;
fastcgi_pass wordpress-1:9000;
}
}
Когда я проверяю NGINX error_log
в debug
, я вижу это:
FastCGI отправил в stderr: «Основной сценарий неизвестен» во время чтения
заголовок ответа от апстрима, клиент: 555.69.70.132, сервер:
wordpress-1.com, запрос: "GET / HTTP / 1.1", upstream:
"fastcgi: //172.18.0.3: 9000", хост: "wordpress-1.com"
Это наводит меня на мысль, что есть проблема с SCRIPT_FILENAME
, но ни /var/www/html$fastcgi_script_name
, ни /var/www/html/wordpress-1$fastcgi_script_name
, похоже, не работают.
Вопрос:
Как мне настроить вторую пару файлов конфигурации, чтобы я мог обслуживать WordPress при монтировании тома WordPress в каталог, отличный от /var/www/html
в контейнере nginx
?
Примечание. Приведенный выше пример является уменьшенным, минимальным примером проблемы, которую я пытаюсь решить. Фактический проект, над которым я работаю, закончен здесь .