web-dev-qa-db-ja.com

Nginx-別のDockerコンテナでphpファイルを実行します

Php-fpmとnginxに自動docker-imageを使用しています( 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-containerを起動しました。

docker run --name nginx -d -p 8081:80 --link php:9000 -v /var/www/restTools:/var/www/html 0d90cc6eb00f

両方のコンテナが実行されていますが、nginxはphpファイルを実行しておらず、ダウンロード用に提供しているだけです。

しばらくして、コマンドにdefault.confを追加することにより、-v /var/www/.config/nginx:/etc/nginx/conf.d:roを介してphpコンテナへの接続の詳細をコミットしようとしました。

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;
    }
}

何が足りないのですか?

2
ManuKILLED

Dockerの(非推奨!!)「リンク」オプションを使用しようとしています。これ自体は問題ではありませんが、尊重する必要があります 構文

--link <name or id>:alias

だから、あなたはあなたの代わりにする必要があります

--link php:9000

正しい

--link php

default.confで参照したのと同じ名前をfpmコンテナーに付けたため、エイリアスは必要ありません。もう1つの重要なことは、phpファイルフォルダーをfpmコンテナーにマウントすることですが、これは既に正しく行っています。

1
mrq