升级PHP到8.0.13后Laravel站点出现浏览器500错误如何解决
问题结论与解决方法
直接设置memory_limit = -1仅适合临时验证问题,不是生产环境的正确解决方案。
问题根源分析
你日志中提到的Allowed memory size of 2097152 bytes exhausted对应的是2M内存限制,这个数值完全无法满足Laravel项目的基础运行要求(Laravel最低内存要求为128M)。
出现这个问题的原因是不同大版本的PHP配置文件相互独立,你之前PHP7.4版本中配置的内存限制不会自动同步到新装的PHP8.0环境,默认的极小内存限制才导致了autoload加载时触发内存溢出。
正确操作步骤
- 打开
/etc/php/8.0/apache2/php.ini,将memory_limit的取值从-1调整为256M,如果你的项目有大文件导出、批量数据处理等场景,可以上调到512M - 配置修改完成后执行命令重启Apache生效:
systemctl restart apache2 - 可临时在站点public目录新建
info.php验证配置是否生效,文件内容为:
访问页面确认<?php phpinfo(); ?>memory_limit值生效后,及时删除该测试文件避免信息泄露。
你之前执行的清理缓存、重生成vendor目录、检查目录权限都属于常规的升级后排查操作,流程是正确的。
内容的提问来源于stack exchange,提问作者jeyGey
相关产品推荐
相关产品推荐

