2009-09-22 2 views
0

Итак, мой план состоит в том, чтобы сделать небольшие миниатюры URL с PHP и IECapt. IECapt хорошо работает, хороший инструмент командной строки, получает полноразмерное изображение указанного URL-адреса в течение 1-4 секунд. Но моя проблема заключается в том, чтобы выполнить его через PHP. Это код, который я пытаюсь получить работу:PHP exec() зависает, ошибка 500

exec('IECapt.exe ' . escapeshellarg($URL) . ' ' . escapeshellarg($Filename)) 

$ URL, конечно, URL, и $ имя_файла представляет собой упрощенную версию URL.

Иногда я получаю, что функция IECapt для привязки изображения (через PHP), но занимает очень много времени (30-60 секунд), и в конце концов я всегда получаю 500-ошибку, без сообщений об ошибках, чтобы сообщить мне, что не так , Обе переменные хорошо, они работают вручную с помощью командной строки:

IECapt http://google.com Google.png

Мой сервер настройки является IIS7 и PHP5.2.9, если это уместно. (Windows Vista, все на моем персональном компьютере, поэтому полный доступ.)

Любые идеи?

+0

На 500 ошибок, вы будете * всегда * получить сообщение об ошибке многословный в 'error.log'. Пожалуйста, опубликуйте это сообщение. –

ответ

0

Возможно, время исполнения превышено, и ваш скрипт убит. http://us3.php.net/manual/en/info.configuration.php#ini.max-execution-time

После редактирования конфигурационного файла, проверьте также, что отображение сообщений об ошибках включена, так что они получают на экране (набор display_errors Вкл)

0

Как говорит Palantir, это превышение времени выполнения PHP по умолчанию , Любые действия, которые могут занять много времени (то есть в течение нескольких секунд), не должны запускаться через скрипты PHP в веб-браузере.

Чтобы выполнить такие действия асинхронно, необходимо создать сценарий командной строки (командной строки). Сценарии CLI по умолчанию не имеют ограничений по времени выполнения.

См http://php.net/cli для более

Если вы DONG много такого рода вещи (т.е. того, чтобы обработать 100s таких действий), вы должны смотреть на очереди сообщений, которые предназначены для решения такого рода проблема. См http://framework.zend.com/manual/en/zend.queue.html

Веб-браузер не место для тяжелой обработки :)