Nginx - запускает php файлы в другом контейнере Docker
Я использую автоматический образ докера для php-fpm и nginx ( https://hub.docker.com/r/tobi312/rpi-php/ и https://hub.docker.com/r/tobi312/rpi-nginx/) работает на Raspberry Pi с libreelec на вершине.
Контейнер php успешно запускается с открытым портом 9000, выполнив следующую команду:
docker run --name php -v /var/www/restTools:/var/www/html -d 3dd6ff8c0d58
После этого я запустил nginx-контейнер так:
docker run --name nginx -d -p 8081:80 --link php:9000 -v /var/www/restTools:/var/www/html 0d90cc6eb00f
Оба контейнера работают, но nginx не выполняет php-файлы, он просто предлагает их для загрузки.
Через некоторое время я попытался зафиксировать детали подключения к php-контейнеру через default.conf
добавляя -v /var/www/.config/nginx:/etc/nginx/conf.d:ro
в команду.
Выдержка из default.conf
:
root /var/www/html;
location / {
root /var/www/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
}
Что мне не хватает?
1 ответ
Вы пытаетесь использовать (не рекомендуется!) Опцию "ссылки" в Docker, это не является проблемой, но вы должны соблюдать синтаксис
--link <name or id>:alias
Итак, вы должны заменить свой
--link php:9000
с правильным
--link php
вам не нужен псевдоним, потому что вы назвали контейнер fpm так же, как указали его в default.conf. Другая важная вещь - это монтировать папку php files в контейнер fpm, но вы уже сделали это правильно.