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

如何在Docker Compose中为WordPress配置PHP 8.1+版本

解决Docker中WordPress PHP版本不足的问题

核心问题

你当前使用的wordpress:latest镜像自带的PHP版本低于8.1,而单独创建的php服务和WordPress容器没有关联,所以站点依然使用旧版本PHP。下面提供两种解决方案,优先推荐方案一(最简单):


方案一:直接使用官方指定PHP版本的WordPress镜像

官方WordPress镜像提供了带明确PHP版本的标签,比如wordpress:php8.1-apache,这个镜像已经集成了Apache和PHP 8.1,直接替换原有配置即可:

修改后的docker-compose.yml配置

# version: '3.1'

services:

  wordpress:
    # 替换为带PHP8.1的官方镜像
    image: wordpress:php8.1-apache
    container_name: WP_name
    restart: always
    volumes:
      - ./wordpress:/var/www/html
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: dbname
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
    ports:
      - 8081:80

  db:
    image: mysql:8
    container_name: mysql_WP
    restart: always
    command: "--default-authentication-plugin=mysql_native_password"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: dbname
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
       - ./schema:/docker-entrypoint-initdb.d

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - 8082:80
    environment:
      PMA_HOST: db
      # 修正拼写错误:PASSWORT → PASSWORD
      MYSQL_ROOT_PASSWORD: password

# 删掉无用的php服务,因为官方镜像已包含PHP8.1

操作步骤

  1. 保存修改后的docker-compose.yml
  2. 重启容器:
    docker-compose down && docker-compose up -d
    
  3. 验证PHP版本:
    docker exec WP_name php -v
    
    输出应该显示PHP 8.1.x版本,此时Composer的版本提示会消失。

方案二:自定义架构关联你的PHP-FPM服务(进阶)

如果需要自定义PHP扩展或使用Nginx作为Web服务器,可以采用Web服务器+PHP-FPM的分离架构:

  1. 保留你的php服务,确保WordPress代码目录挂载到该容器
  2. 添加Nginx服务,配置反向代理到PHP-FPM容器
  3. 移除原有的wordpress服务,改用纯Web服务器镜像

不过这个方案需要额外配置Nginx的default.conf,适合有一定Docker基础的用户,新手优先选方案一。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:27:06