Laravel Sail(Docker)中phpMyAdmin导入报POST Content-Length超限
问题根因
你之前修改的docker/8.1/php.ini仅作用于laravel.test对应的Laravel应用容器。phpMyAdmin是独立部署的官方镜像,内部自带独立PHP运行环境,默认上传大小限制为2M,对Laravel容器的PHP配置修改不会同步到phpMyAdmin容器,因此配置始终不生效。
解决方案
方案一:通过环境变量快速配置(推荐)
phpMyAdmin官方镜像原生支持通过环境变量直接设置上传大小限制,无需额外创建配置文件,直接修改docker-compose.yml中myadmin服务的配置即可:
myadmin: image: 'phpmyadmin:latest' ports: - 8080:80 environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' UPLOAD_LIMIT: 100M links: - "mysql:db" depends_on: - mysql networks: - sail
UPLOAD_LIMIT参数会自动同步调整post_max_size和upload_max_filesize两个PHP配置项,满足大文件上传需求。
方案二:挂载自定义配置文件(适合多参数调整场景)
如果需要同时调整PHP执行时间、内存限制等其他参数,可以通过挂载自定义ini文件的方式覆盖容器默认配置:
- 在项目
docker目录下新建phpmyadmin文件夹,创建uploads.ini配置文件,写入需要的参数:upload_max_filesize = 100M post_max_size = 100M max_execution_time = 300 memory_limit = 256M - 修改
docker-compose.yml中myadmin服务配置,添加卷挂载规则:myadmin: image: 'phpmyadmin:latest' ports: - 8080:80 environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' volumes: - './docker/phpmyadmin/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini' links: - "mysql:db" depends_on: - mysql networks: - sail ```
生效操作
配置修改完成后,在项目根目录执行以下命令重建容器使配置生效:
sail down sail up -d
容器重启完成后再访问phpMyAdmin导入SQL文件,即可解决大小超限报错。
内容的提问来源于stack exchange,提问作者Dylan Glockler
相关产品推荐
相关产品推荐

