2

Я использую автоматический образ докера для 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 ответ1

1

Вы пытаетесь использовать (устарело!) Опция "link" в Docker, сама по себе это не проблема, но вы должны соблюдать синтаксис

--link <name or id>:alias

Итак, вы должны заменить свой

--link php:9000

с правильным

--link php

вам не нужен псевдоним, потому что вы назвали контейнер fpm так же, как указали его в default.conf. Другая важная вещь - это смонтировать папку php files в контейнере fpm, но вы уже сделали это правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .