将主机nginx和msql与一个php5-fpm的docker容器连接起来
我有一个与Nginx / MySQL和php5-fpm运行的传统Wordpress安装,我必须将其移动到最新的VPS,其function为php7-fpm。
我想利用已经安装Nginx / MySQL的新主机VPS,并安装和使用一个容器来pipe理php5请求。
我从Docker Hub中取出了官方的php5-fpm镜像
docker pull php:5.6-fpm-alpine
…然后我运行映像重新映射的端口9000,其中php5-fpm正在侦听,并加载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(未find)响应。
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指令中,一个在容器内部运行的指令,你redirect到9999
。 相反,它应该是9000
。
根据您的情况,所有资源都由端口9999
的容器提供服务,但容器的端口9999
不能由主机访问。