我需要从服务器端创建验证码。我使用php + imagick扩展。有时我会在创建图像时发现500错误,尽管大部分时间都可以正常工作。 代码如下所示:
$Imagick = new Imagick();
$Imagick->newImage( $w, $h, $bg );
$ImagickDraw = new ImagickDraw();
$ImagickDraw->setFont(...);
$ImagickDraw->setFontSize( ... );
$ImagickDraw->setFillColor(...);
$Imagick->borderImage('black', 1, 1);
$Imagick->annotateImage($ImagickDraw, 12, 34, $angles[rand(0, count($angles)-1)], $code);
$Imagick->swirlImage( 10 );
for($i=0; $i<20; $i++) {
$ImagickDraw->line( mt_rand( 1, $w-1 ), mt_rand(1, $h-1), mt_rand(1, $w-1), mt_rand(1, $h-1) );
}
for ($i=0; $i<30; $i++) {
$ImagickDraw->color( mt_rand(1, $w-1), mt_rand(1, $h-1), 0);
}
$Imagick->drawImage( $ImagickDraw );
错误日志报告“最后一行超过30秒的最长执行时间”
$Imagick->drawImage( $ImagickDraw ).
有没有人遇到过这样的问题?我使用php5.2.17,imagick模块2.3.0和Apache 2.2.15。
答案 0 :(得分:1)
这意味着您的主机正在终止服务器进程(可能在执行30秒后,这将是他们的限制)。您的脚本应用了一些过滤器,而在非常大的图像上,这肯定需要30秒以上。考虑限制图像分辨率。