用docker-compose搭建的wordpress提示上传的文件大小超过php.ini

WordPress 提示“上传的文件大小超过 php.ini 文件中定义的 upload_max_filesize 值”是一个常见问题,意味着 PHP 配置中的文件上传大小限制太小。由于你的 WordPress 运行在 Docker 容器中,你需要以正确的方式修改其 PHP 配置。

步骤 1: 创建自定义 PHP 配置文件

首先,在你 WordPress 项目的目录下(wordpress_site 目录),创建一个新的子目录,例如 config,并在其中创建一个 uploads.ini 文件。

cd wordpress_site
mkdir -p config
touch config/uploads.ini

然后,编辑 config/uploads.ini 文件,添加或修改以下 PHP 配置指令:

upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300

说明:

  • upload_max_filesize:允许上传的单个文件最大大小。

  • post_max_size:POST 请求发送数据的最大大小。这应该大于或等于 upload_max_filesize

  • memory_limit:PHP 脚本可以消耗的最大内存量。WordPress 有时需要更多内存。

  • max_execution_time:脚本的最大执行时间(秒)。上传大文件可能需要更长时间。

  • max_input_time:脚本解析输入数据允许的最大时间(秒)。

你可以根据需要调整这些值,例如,如果你需要上传更大的文件,可以设置为 128M 或 256M

 

修改 docker-compose.yml 文件

接下来,你需要修改 wordpress_site 目录下的 docker-compose.yml 文件,让 WordPress 容器在启动时使用你刚刚创建的 uploads.ini 文件。

找到 wordpress 服务部分,在 volumes 下添加一行,将你创建的 uploads.ini 文件挂载到 WordPress 容器的 PHP 配置目录中。

version: '3.3'

services:
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_mysql_root_password # 替换为你的MySQL root密码
      MYSQL_DATABASE: wordpress_db
      MYSQL_USER: wordpress_user
      MYSQL_PASSWORD: your_wordpress_db_password # 替换为WordPress数据库用户的密码
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    restart: always
    ports:
      - "8080:80" # 将WordPress容器的80端口映射到主机的8080端口
    environment:
      WORDPRESS_DB_HOST: db:3306 # 数据库服务名称和端口
      WORDPRESS_DB_USER: wordpress_user
      WORDPRESS_DB_PASSWORD: your_wordpress_db_password # 替换为WordPress数据库用户的密码
      WORDPRESS_DB_NAME: wordpress_db
    volumes:
      - wordpress_data:/var/www/html
      - ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # ⬅️ 添加这一行
    depends_on:
      - db

volumes:
  db_data:
  wordpress_data:

说明:

  • ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:这一行将宿主机上的 config/uploads.ini 文件挂载到 WordPress 容器内部的 /usr/local/etc/php/conf.d/ 目录。这是 PHP 加载额外配置文件的标准位置,Docker 官方的 WordPress 镜像会自动加载此目录下的 .ini 文件。

 

保存 docker-compose.yml 文件后,你需要重启 WordPress 服务以使更改生效。在 wordpress_site 目录下运行:

docker-compose down
docker-compose up -d

 

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容