我正在从多伦多房地产委员会下载房地产信息,并使用 LAMP 技术栈普瑞特在2GB 数字海洋 VPS。当我下拉属性时,我会在将它们保存到数据库之前对它们运行一些进程。我有一个 cron 作业,每小时运行一次脚本。有时,脚本运行完美。其他时候,我经常在第一分钟内收到此错误:
PHP Fatal error: Out of memory (allocated 131076096) (tried to allocate 12288 bytes) in /var/www/mysite.com/vendor/joshcam/mysqli-database-class/MysqliDb.php on line 1511
我已经更新了我的php.ini
文件memory_limit = 1500M
我对这一切还很陌生,但我的印象是这应该允许脚本分配 1500MB 或 1.5GB 的内存。
错误似乎是说脚本尝试分配12288 bytes
可能的131076096 bytes
,但这说不通,对吗?我该如何解决这个问题?我需要升级我的服务器吗?还是 2GB 的 RAM 就足够了?我是否遗漏了什么?
答案1
我已经更新了我的 php.ini 文件
memory_allowed = 1500M
有没有这样的设置。该设置名为memory_limit
。更改后,请务必重新启动您的 Web 服务器(或 PHP-FPM,如果您正在使用的话)。
答案2
您的 PHP 警告意味着您的脚本试图分配 12288多于允许的最大值(默认 128 MB)。
您可以提高默认最大值,但需要注意不要过度分配内存。