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文件挂载到容器
- 在项目根目录新建
config文件夹,里面创建php.ini文件,写入:
upload_max_filesize = 500M post_max_size = 500M memory_limit = 512M ; 可选配置,避免大文件上传时内存不足
- 修改
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"
- 重启服务生效。
方法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
相关产品推荐
相关产品推荐

