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

使用Docker Compose部署WordPress遇cURL error 28问题求助

Docker Compose部署WordPress遇cURL error 28及REST API超时问题

执行主题导入等操作时触发cURL error 28,站点健康检查提示REST API请求超时,具体信息如下:

REST API Endpoint: http://192.168.0.4:8000/wp-json/wp/v2/types/post?context=edit
REST API Response: (http_request_failed) cURL error 28: Connection timed out after 10002 milliseconds

当前使用的docker-compose.yml配置:

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: *******
      MYSQL_DATABASE: wordpressdb
      MYSQL_USER: *******
      MYSQL_PASSWORD: *******

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./php.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: *******
      WORDPRESS_DB_PASSWORD: *******
      WORDPRESS_DB_NAME: wordpressdb
volumes:
    db_data:

通过内网IP192.168.0.4:8000访问后台管理面板,已尝试以下方案未解决:

  • 移除所有插件
  • 修改php.ini提升memory_limit、post_max_size等参数
  • 在functions.php中添加超时回调过滤函数

解决方案尝试

1. 统一WordPress内部与外部访问URL

WordPress内部调用REST API时,若使用外部内网IP,容器可能无法直接访问。需配置内部访问地址:

  • 在docker-compose.yml的wordpress服务环境变量中添加:
    WORDPRESS_SITE_URL: http://wordpress:80
    WORDPRESS_HOME: http://wordpress:80
    
    或进入后台设置-常规,将「WordPress地址(URL)」「站点地址(URL)」改为http://wordpress:80,外部访问仍用192.168.0.4:8000不受影响。

2. 验证容器内部网络连通性

  • 进入wordpress容器,测试内部访问REST API:
    docker exec -it <wordpress容器名> curl http://wordpress:80/wp-json/wp/v2/types/post?context=edit
    
    若无法访问,重建Docker网络:
    docker-compose down
    docker network rm <项目目录名_default> # 默认网络名是项目目录加_default
    docker-compose up -d
    

3. 确保PHP超时参数生效

在挂载的php.ini中补充以下参数,覆盖默认超时限制:

max_execution_time = 300
max_input_time = 300
default_socket_timeout = 300
curl_timeout = 300

修改后重启容器:docker-compose restart wordpress

4. 禁用IPv6避免网络异常

在docker-compose.yml中添加网络配置禁用IPv6:

version: '3.3'
services:
  # 原有服务配置不变
networks:
  default:
    enable_ipv6: false
    driver: bridge

5. 检查主机防火墙规则

确认主机防火墙未拦截容器内部的回环请求,或未限制容器间的网络通信,必要时临时关闭防火墙测试是否恢复正常。


内容的提问来源于stack exchange,提问作者A. Mair

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:43:12