Php 拉威尔从记忆中消失了

Php 拉威尔从记忆中消失了,php,laravel,image,php-glide,Php,Laravel,Image,Php Glide,我在Laravel上使用Glide,我有一个“小”问题。当我通过outputImage()加载小图像时,一切正常。但当我尝试加载(简单来说)1.6MB的图像时,Laravel放在控制台中: Allowed memory size of 67108864 bytes exhausted (tried to allocate 14152 bytes) in C:\Users\displate\Documents\displate\vendor\intervention\image\src\Inte

我在Laravel上使用Glide,我有一个“小”问题。当我通过
outputImage()
加载小图像时,一切正常。但当我尝试加载(简单来说)1.6MB的图像时,Laravel放在控制台中:

 Allowed memory size of 67108864 bytes exhausted (tried to allocate 14152 bytes) in C:\Users\displate\Documents\displate\vendor\intervention\image\src\Intervention\Image\Gd\Decoder.php on line 34
我怎样才能简单地修复它

我的代码的错误部分:

protected function get($path,$storage,$sizes,$prefix=''){
    ini_set('memory_limit', '64M'); // it's not working :<
    if($this->check_variables($sizes)){
        $server=$this->prepare_server($storage,$prefix);

        try{
            $server->getImageResponse($path);

            $server->outputImage($path, $_GET);
        }
        catch(\Exception $e){
            $this->download_image($path,$storage);

            $server->getImageResponse($path);

            $server->outputImage($path, $_GET);
        }
    } 
    else{
        abort(404);
    }
}

protected function prepare_server($storage_name,$prefix=''){
    $server = \League\Glide\ServerFactory::create([
                    'source' => \Storage::disk($storage_name)->getDriver(),
                    'cache'  =>  \Storage::disk($storage_name)->getDriver(),
                    'source_path_prefix'    =>  $prefix,
                    'cache_path_prefix'     =>  $storage_name.'_cached',

                ]);

    $_GET['fit']='crop';
    $_GET['crop']='center';

    return $server;
}
get受保护函数($path、$storage、$size、$prefix=“”){
ini_集('memory_limit','64M');//它不工作:<
如果($this->check_变量($size)){
$server=$this->prepare\u server($storage,$prefix);
试一试{
$server->getImageResponse($path);
$server->outputImage($path,$\u GET);
}
捕获(\异常$e){
$this->download_image($path,$storage);
$server->getImageResponse($path);
$server->outputImage($path,$\u GET);
}
} 
否则{
中止(404);
}
}
受保护的函数prepare\u server($storage\u name,$prefix=''){
$server=\League\Glide\ServerFactory::create([
'source'=>\Storage::disk($Storage\u name)->getDriver(),
'cache'=>\Storage::disk($Storage\u name)->getDriver(),
“源路径前缀”=>$prefix,
“缓存路径前缀”=>$storage\u name.“缓存”,
]);
$_GET['fit']='crop';
$_GET['crop']='center';
返回$server;
}

如果您确信您的内存确实是由于您认为的原因而耗尽的,而不是由于某个无限循环或其他错误,那么您可以通过执行以下操作来增加PHP能够使用的内存量

  • 找到web服务器使用的php.ini文件
  • 编辑php.ini文件中的memory_limit参数(通常在名为Resource Limits的部分中)
  • 重新启动Apache
之后应该是这样的:

memory_limit 128M
如果你陷入困境,看起来是一个很好的资源


64Mb,这是你所拥有的,不是那么多。如果你有内存的话,我会把它设置在512M甚至1024M。

内存限制帮帮我,我现在使用的是512Mb