You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx无法连接Docker中PHP-FPM环境的WordPress问题求助

问题排查与解决步骤

1. 优先解决「Connection refused」错误(核心连通性问题)

这个错误说明Nginx容器无法连接到WordPress容器的9000端口,按以下步骤排查:

1.1 确认容器网络互通

  • 确保Nginx和WordPress容器处于同一个Docker自定义网络中(默认桥接网络可能存在解析问题):
    • 查看现有网络:docker network ls
    • 检查容器所属网络:docker inspect nginx-container | grep Networks 和 docker inspect wordpress-container | grep Networks
    • 如果不在同一网络,创建并加入:
      docker network create wp-network
      docker network connect wp-network nginx-container
      docker network connect wp-network wordpress-container
      
  • 测试连通性:进入Nginx容器,执行 ping wordpress 或 telnet wordpress 9000,确认能解析并连通端口。

1.2 检查PHP-FPM监听配置

WordPress容器的PHP-FPM默认可能仅监听127.0.0.1:9000(仅容器内部可访问),需修改为监听所有地址:

  • 进入WordPress容器:docker exec -it wordpress-container bash
  • 编辑PHP-FPM配置文件:vi /usr/local/etc/php-fpm.d/www.conf
  • 找到 listen = 127.0.0.1:9000,修改为:
    listen = 0.0.0.0:9000
    
  • 重启PHP-FPM或容器:docker restart wordpress-container

2. 解决「GET /index.php 301」重定向问题

301通常是WordPress站点URL配置与实际访问地址不匹配导致,按以下处理:

2.1 修正WordPress站点URL

通过修改wp-config.php强制适配当前访问地址:

  • 挂载或进入WordPress容器的网站目录,编辑wp-config.php,添加以下代码:
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    define('FORCE_SSL_ADMIN', false); # 若未配置HTTPS,禁用强制SSL
    
  • 若能访问WordPress数据库,修改wp_options表的siteurl和home字段为你的EC2公网IP/域名(带http://)。

2.2 优化Nginx配置细节

调整Nginx配置,确保文件路径和请求传递正确:

  • 确保Nginx容器挂载了WordPress的网站目录,比如启动时添加:
    -v /path/to/wordpress/html:/usr/share/nginx/html
    
    这样$document_root才能正确指向WordPress文件,PHP-FPM才能找到对应的脚本。
  • 补充Nginx配置的index指令,避免默认重定向:
    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }
    
  • 检查fastcgi_params中是否包含HTTP_HOST参数(默认应该有,若没有手动添加):
    fastcgi_param HTTP_HOST $host;
    

3. 日志验证

  • 查看Nginx错误日志:docker exec nginx-container tail -f /var/log/nginx/error.log,确认是否还有连接拒绝信息。
  • 查看WordPress容器的PHP-FPM日志:docker exec wordpress-container tail -f /var/log/php8.0-fpm.log,检查是否有启动或请求处理错误。

内容的提问来源于stack exchange,提问作者AlwaysNewbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:27:03