1、问题是这样的,前段时间还是好好的,最近这几天我登陆后台显示:
“服务器错误
500 - 内部服务器错误。
您查找的资源存在问题,因而无法显示。”
2、然后我打开500详细错误显示:“PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16384 bytes) in D:\websoft\web\drkb\ThinkPHP\Common\common.php on line 744”

3、接着我去百度搜索出了一大推这样的解决办法:“修改 php.ini配置文件,在php.ini中找到
memory_limit = 512M”
4、修改好后我上传重启服务器,结果还是显示同上面“2”的内容,然后在将memory_limit = 改成1024M依然不能解决问题,又改成-1也是不能解决,请问是不是服务器有问题还是怎么的?应用怎么解决?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,您的PHP应用遇到了内存耗尽错误,具体表现为后台登录时出现500内部服务器错误,并且错误日志显示在执行某段代码时内存分配超出限制。尽管您已经尝试通过修改php.ini配置文件中的memory_limit值来解决此问题,但即便将该值设置得非常大(包括设置为-1以允许无限制内存使用),问题依旧存在。这通常指示问题可能并非仅仅由内存限制引起,还可能是代码中存在内存泄漏或者特定操作消耗了大量内存。以下是一些建议的排查和解决步骤:
内存溢出错误:您遇到的错误信息“PHP Fatal error: Allowed memory size of 134217728 bytes exhausted”表明在执行到ThinkPHP框架的Common\common.php第744行时,PHP脚本尝试分配的内存超出了当前配置的最大允许值(128MB)。
已尝试解决方案:您已尝试通过增加memory_limit至512M乃至1024M甚至-1(无限制),但问题未得到解决,这提示问题根源可能不在内存限制本身。
php.ini文件。可以通过创建一个包含<?php phpinfo(); ?>的PHP文件并访问它来检查memory_limit的实际值,确认修改是否生效。定位问题代码:深入分析报错文件D:\websoft\web\drkb\ThinkPHP\Common\common.php的第744行及周边逻辑,查找可能导致大量内存消耗的操作,如大数据量的数组、循环、递归等。
优化代码:对发现的内存密集型操作进行优化,比如减少不必要的数据加载、优化数据库查询、使用迭代而非递归等方法减少内存使用。
memory_get_usage()),并适当增加错误处理逻辑,以便更精确地定位问题发生的位置。memory_limit设为-1虽能临时绕过内存限制,但可能导致服务器因单个请求消耗过多资源而变得不稳定,建议仅作为调试手段并在找到根本原因后恢复合理限制。如果以上步骤均未能解决问题,可能需要更深入地分析应用逻辑或考虑是否存在服务器层面的资源限制问题。您也可以通过ECS一键诊断全面排查并修复ECS问题。