我已经在超级用户(https://superuser.com/questions/1298776/nginx-execute-php-files-in-different-docker-container)上问了同样的问题,但是无法得到答案,也许这个问题对于SU来说太具体了。
我正在使用一个自动的docker-image for php-fpm和nginx(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文件,它只是提供下载。
过了一会儿,我尝试通过在命令中添加default.conf
将连接详细信息提交到php-container -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;
}
}
我错过了什么?
答案 0 :(得分:0)
您正尝试使用docker的(已弃用!)“ link”选项,这本身不是问题,但您必须遵守the syntax
--link <name or id>:alias
所以,您必须替换您的
--link php:9000
正确
--link php
您不需要别名,因为您将fpm容器命名为与default.conf中引用的相同。 另一个重要的事情是将php文件文件夹安装在fpm容器中,但是您已经正确地做到了。