[英]Connect host nginx and msql with a docker container of php5-fpm
我有一个与Nginx / MySQL和php5-fpm一起运行的旧版Wordpress安装,我必须将其移至具有php7-fpm的最新VPS。
我想利用已经安装了Nginx / MySQL的新主机VPS,并安装并使用一个容器来管理php5请求。
我从Docker Hub提取了官方的php5-fpm映像
docker pull php:5.6-fpm-alpine
...然后我运行映像,将映像重新映射到php5-fpm正在侦听的端口9000,并挂载wordpress根文件夹(对此不确定)和mysql套接字,不带-d标志以查看实时日志:
docker run --name phpFpm5.6 -p 127.0.0.1:9999:9000 -v /home/ubuntu/www/html:/var/www/html -v /var/run/mysqld/mysqld.sock:/tmp/mysql.sock php:5.6-fpm-alpine
这是控制台日志:
[21-Aug-2017 12:36:19] NOTICE: fpm is running, pid 1
[21-Aug-2017 12:36:19] NOTICE: ready to handle connections
172.17.0.1 - 21/Aug/2017:12:37:09 +0000 "GET /index.php" 404
172.17.0.1 - 21/Aug/2017:12:39:30 +0000 "GET /index.php" 404
当我从浏览器请求索引页时,得到了404(未找到)响应。
Nginx指令:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9999;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
任何线索都非常感谢。
提前致谢。
最好,卢卡
将容器视为远程服务器。 现在,您正在执行的端口映射9999:9000
告诉docker将主机上的端口号9999
连接到容器的端口号9000
。
现在,在您的nginx指令(在容器中运行的指令)中,您将重定向到9999
。 相反,它应该是9000
。
根据您的方案,容器的所有资源都在端口9999
,但主机不能访问容器的端口9999
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.