Nginx - 在不同的docker容器中执行php文件


2

我正在使用php-fpm和nginx的自动docker-image( https://hub.docker.com/r/tobi312/rpi-php/ https://hub.docker.com/r/tobi312/rpi-nginx/ 运行在覆盆子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-container trough 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;
    }
}

我错过了什么?

Answers:


1

您正在尝试使用docker的(已弃用!!)“link”选项,这本身不是问题,但您必须尊重 语法

--link <name or id>:alias

所以,你必须替换你的

--link php:9000

用正确的

--link php

您不需要别名,因为您将fpm容器命名为default.conf中引用的相同。 另一个重要的事情是将php文件夹安装在fpm容器中,但你已经做到了这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.