2012-03-14 3 views
2

서버 측에서 captcha를 생성해야합니다. 나는 php + imagick 확장자를 사용한다. 때로는 대부분의 시간 동안 작동하지만 이미지를 만드는 동안 500 오류가 발생합니다.php 및 imagick으로 이미지를 생성하는 동안 시간 초과 오류가 발생했습니다.

$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과 아파치 2.2.15를 사용한다.

+0

음 이미지의 크기가 얼마 남았습니까? – Amber

+0

이 코드는 루프에 있습니까? 아니면 하나의 이미지 만 생성하고 있습니까? – Ethan

+0

하나의 이미지 만 작동하면 생성 된 이미지는 약 1-2k입니다. 이미지는 100x40 픽셀입니다. –

답변

1

호스트가 서버 프로세스를 죽이고 있음을 의미합니다 (실행 한계 30 초 후). 스크립트는 일부 필터를 적용하고 매우 큰 이미지의 경우 30 초 이상 걸릴 수 있습니다. 이미지 해상도를 제한하는 것을 고려하십시오.

관련 문제