我正在为 php-fpm 和 nginx 使用自动化的 docker-image(https://hub.docker.com/r/tobi312/rpi-php/和https://hub.docker.com/r/tobi312/rpi-nginx/) 在搭载有 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-container。
摘录自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”选项,这本身不是问题,但您必须尊重语法
--link <name or id>:alias
所以,你必须用你的
--link php:9000
正确的
--link php
您不需要别名,因为您为 fpm 容器命名的名称与您在 default.conf 中引用的名称相同。另一件重要的事情是将 php 文件夹挂载到 fpm 容器中,但您已经做对了。