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

LAMP Docker环境上传大小限制设置无效,无法上传2M+文件

解决Docker LAMP环境中PHP站点上传文件大小限制问题

问题根源

你给phpMyAdmin设置的UPLOAD_LIMIT只对phpMyAdmin本身生效,完全不影响web-server服务里的PHP运行环境——这就是为什么你的站点还是卡在2M上传限制的核心原因。

解决方案

方法1:给web-server添加PHP环境变量

直接修改docker-compose.yml,给web-server服务加环境变量覆盖PHP默认配置:

version: "3.7"
services:
  web-server:
    build:
      dockerfile: php.Dockerfile
      context: .
    restart: always
    volumes:
      - "./html/:/var/www/html/"
    ports:
      - "8080:80"
    environment:
      # 配置PHP上传相关参数
      PHP_UPLOAD_MAX_FILESIZE: 500M
      PHP_POST_MAX_SIZE: 500M
  # 其余mysql-server、phpmyadmin配置保持不变

修改完执行命令重启服务:

docker-compose down && docker-compose up -d --build

方法2:自定义php.ini文件挂载到容器

  1. 在项目根目录新建config文件夹,里面创建php.ini文件,写入:
upload_max_filesize = 500M
post_max_size = 500M
memory_limit = 512M ; 可选配置,避免大文件上传时内存不足
  1. 修改docker-compose.yml的web-server服务,添加挂载规则:
services:
  web-server:
    build:
      dockerfile: php.Dockerfile
      context: .
    restart: always
    volumes:
      - "./html/:/var/www/html/"
      - "./config/php.ini:/usr/local/etc/php/php.ini" # 新增这行挂载自定义配置
    ports:
      - "8080:80"
  1. 重启服务生效。

方法3:用.htaccess快速配置(站点目录生效)

你的Apache已经启用了rewrite模块(Dockerfile里的a2enmod rewrite),可以直接在./html/目录下创建.htaccess文件,写入:

php_value upload_max_filesize 500M
php_value post_max_size 500M

这个配置会直接作用于站点目录,无需重启容器。

验证配置是否生效

在./html/目录新建info.php文件,内容如下:

<?php phpinfo(); ?>

访问http://localhost:8080/info.php,搜索upload_max_filesize和post_max_size,确认数值已经改成500M即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:42:09