Heroku部署的Laravel应用设置upload_max_filesize不生效求助
Heroku Laravel 应用自定义PHP配置生效方案
- 优先使用
.user.ini做目录级配置
把需要自定义的配置项写在Laravel项目的public/目录下的.user.ini文件中(文件不存在就手动新建),PHP运行时会自动识别该目录下的配置,无需修改服务器规则。示例配置:post_max_size = 32M upload_max_filesize = 32M memory_limit = 256M max_execution_time = 60 - 全局生效配置使用
conf.d目录
要是需要全局生效的配置,在项目根目录新建conf.d/文件夹,在里面新建任意以.ini为后缀的配置文件(比如custom.ini),写入配置项即可,Heroku PHP buildpack会在dyno启动时自动加载该目录下的所有ini配置,优先级高于系统默认配置。 - 排查
ini_set失效问题
部分PHP配置属于PHP_INI_SYSTEM或PHP_INI_PERDIR级别,不允许在应用代码中通过ini_set()动态修改,比如上传大小限制、基础目录限制等,修改前可先查询对应配置的可修改范围,这类配置必须通过上面两种静态配置方式修改。 - 验证配置是否生效
不要仅依赖phpinfo()输出,建议在Laravel中新增测试路由打印实际配置值,避免缓存干扰:Route::get('/check-ini', function () { return ini_get('需要验证的配置项名称'); }); - 常见踩坑排查
- 所有自定义配置文件必须加入git追踪,不能写到
.gitignore规则里,否则部署时不会推送到Heroku - 修改配置后必须执行
git commit再执行git push heroku 你的分支名,仅重启dyno不会加载新配置,必须重新推送触发buildpack构建流程 - 如果你使用了多个buildpack,要确保PHP buildpack的排序在最前,避免配置加载逻辑被其他buildpack覆盖
- 所有自定义配置文件必须加入git追踪,不能写到
内容的提问来源于stack exchange,提问作者myestery
相关产品推荐
相关产品推荐

