【问题标题】:Connect host nginx and msql with a docker container of php5-fpm将主机 nginx 和 msql 与 php5-fpm 的 docker 容器连接起来
【发布时间】:2017-08-21 13:57:47
【问题描述】:

我有一个使用 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 标志以便实时查看日志:

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;
}

非常感谢任何线索。

提前致谢。

最好, 卢卡

【问题讨论】:

    标签: php wordpress docker nginx containers


    【解决方案1】:

    将容器视为远程服务器。现在你正在做的端口映射9999:9000 告诉 docker 将主机上的端口号 9999 连接到容器的端口号 9000

    现在在您的 nginx 指令中,即在容器内运行的指令中,您将重定向到 9999。相反,它应该是9000

    根据您的方案,所有资源都由容器在端口9999 提供服务,但容器的端口9999 主机无法访问。

    【讨论】:

    • 我认为映射到本地主机的 fastcgi_pass 也会导致失败
    • @omu_negru 是的,要么改映射要么改重定向端口为9000
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 2023-01-14
    • 2019-11-13
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多