我目前在日志中收到以下有关内存耗尽的错误代码。
[16-May-2023 11:18:05 UTC] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 33554440 bytes) in /home/allgates/public_html/vqmod/vqmod.php on line 336
所指的代码如下
` * VQMod::_loadChecked()
*
* @return null
* @description Loads already checked files and adds them to _doNotMod array
*/
private static function _loadChecked() {
$file = self::path(self::$checkedCache);
if($file && is_file($file)) {
Line 336 -> ** **$paths = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);****
if(!empty($paths)) {
foreach($paths as $path) {
$fullPath = self::path($path, true);
if($fullPath) {
self::$_doNotMod[] = $fullPath;`
有人可以建议如何修复吗?我对 php 不了解,所以希望有人知道一个简单的修复方法。
我检查了 php.ini 文件中的内存限制,它显示为 64M。我增加到 128M,但仍然收到错误。
您看到的错误消息表明已超出 PHP 脚本的内存限制。具体来说,由于读取的文件大小,PHP 中的
file
函数会消耗大量内存。要解决此问题,您可以尝试增加脚本的内存限制。
为此,您可以直接编辑 php.ini 文件或修改网站的 .htaccess 文件。
您可以采取以下步骤:
编辑 php.ini:在 php.ini 文件中找到
"memory_limit"
指令并增加值,例如 "memory_limit = 256M"
表示 256 MB 内存。
编辑 .htaccess:如果您无权访问 php.ini,您可以尝试编辑网站根目录中的 .htaccess 文件并添加以下行:
"php_value memory_limit 256M"
(或所需的值)。
希望这可以帮助您解决问题。
由于绝对路径的缓存未命中,“checked.cache”文件不断增长。修复了 vqmod::path() 函数来处理绝对路径。
你能告诉我你到底是如何解决这个问题的吗,没有编码知识