我有一个使用Nginx / MySQL和php5-fpm运行的传统Wordpress安装,我必须将其移至最近的具有php7-fpm的VPS。
我想利用已安装Nginx / MySQL的新主机VPS,并安装并使用容器来管理php5请求。
我从Docker Hub中提取了官方php5-fpm图片
docker pull php:5.6-fpm-alpine
...然后我运行图像重新映射端口9000,其中php5-fpm正在侦听并安装wordpress根文件夹(不确定)和mysql套接字,没有-d标志,以便查看日志:< / p>
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;
}
任何线索都非常感激。
提前致谢。
最佳, 卢卡
答案 0 :(得分:0)
将容器视为远程服务器。现在,您正在执行的端口映射9999:9000
告诉docker将主机上的端口号9999
连接到容器的端口号9000
。
现在在你的nginx指令中,在容器内运行的那个,你在9999
重定向。相反,它应该是9000
。
根据您的方案,所有资源都由端口9999
上的容器提供,但主机无法访问容器的端口9999
。