致命错误:在php中生成大量缩略图时超过了最大执行时间
我正在尝试编写一个PHP脚本,该脚本将执行以下操作:致命错误:在php中生成大量缩略图时超过了最大执行时间,php,linux,thumbnails,Php,Linux,Thumbnails,我正在尝试编写一个PHP脚本,该脚本将执行以下操作: 从给定目录中的存档中提取所有文件(使用exec函数实际运行7z) 列出所有图像文件(jpg、jpeg、gif、png)并将它们存储在一个数组中(再次使用exec运行“ls”并仅将图像存储在数组中,我比较扩展名) 在阵列中循环,并针对每个图像: 将该图像移动到唯一文件夹中 在同一唯一文件夹中生成缩略图(我使用) 将新图像记录到数据库中 对于少量图像,我认为脚本工作正常(可能会有很大改进) 我的问题是,经过一定数量(每次运行脚本时似乎都是随机的
PHP致命错误:第217行的/var/www/ims/public_html/dev/include/phpThumb/GdThumb.inc.PHP中超过了60秒的最大执行时间
imagecopyresampled
(
$this->workingImage,
$this->oldImage,
0,
0,
0,
0,
$this->newDimensions['newWidth'],
$this->newDimensions['newHeight'],
$this->currentDimensions['width'],
$this->currentDimensions['height']
); // <- this is line 217
imagecopyresampled
(
$this->workingImage,
$this->oldImage,
0,
0,
0,
0,
$this->newDimensions['newWidth'],
$this->newDimensions['newHeight'],
$this->currentDimensions['width'],
$this->currentDimensions['height']
); // php限制允许脚本执行的时间长度。你可以在php.ini中增加这个值,或者使用在每个脚本上增加这个值。转到你的php.ini
文件,找到max\u execution\u time
(大约是我的30%)。把那个号码改成你想要的
不要忘了输出一个指示器,表明脚本正在按预期运行,这样您就可以看到正在发生的事情。而且,这往往会使我的CPU温度迅速上升,这表明可能有更好的方法来处理问题。60秒的时间限制适用于整个脚本化进程。它的主要目的是防止恶意php子进程将apache子进程(或其他web服务器资源)绑定到加载的服务器上
如果您将php用作shell脚本语言而不是web应用程序,我建议您选择set\u time\u limit(0)
或确保在php cli解释器中运行脚本,该解释器会自动执行此操作
如果您试图对web服务器中的文档上载/表单发布执行大型批处理操作,则可能需要考虑使用某种作业服务器将处理工作卸载到服务器,而不是将web服务器长期挂起。就是这样一个系统。您是否尝试增加php.ini中的超时设置?如果您有access,我使用php函数set_time_limit(60);在脚本的顶部,将执行时间设置为60秒。但要调整1.5MB图片的大小,60秒似乎相当长:s@Jonas:执行时间是整个脚本从头到尾的时间,而不仅仅是调整一个图像的大小。如上所述,我使用相应的php函数设置了最大执行时间,但60秒还不够长吗?