Curl PHP - странная внутренняя ошибка сервера - PullRequest
3 голосов
/ 20 марта 2012

У меня 2 сервера. Сервер 1 имеет движок / API. На сервере 2 есть apache2 и мой веб-сайт.

С сайта я пытаюсь сделать простой завиток двигателя. Если скручивание длится более ~ 15 секунд, я получаю внутреннюю ошибку сервера. Если я запускаю этот скрипт из bash (не используя браузер), я получаю статус 200 и ответ. Когда я запускаю этот скрипт с localhost на движок, он работает нормально. Но когда я хочу подключиться с моего сервера через браузер к движку - я получаю внутреннюю ошибку сервера через 15 секунд.

У меня нет никакой информации в apache2 error_log. В php.ini у меня время выполнения = 120, а в apache у меня 300 таймаутов. Ты хоть представляешь, что не так? (Мой сервер работает под управлением debian lenny.) Извините за мой плохой английский.

$data = "Test text";
$_data['post'] = 'source_text='.urlencode($data);
$_data['url'] = ENGINE_PATH;
$_data['access'] = HTACCESS_LOGIN.':'.HTACCESS_PASSWORD;
$_curl = curl_init();

if(!empty($_data['post'])){
    curl_setopt($_curl, CURLOPT_POST, 1);
    curl_setopt($_curl, CURLOPT_POSTFIELDS, $_data['post']);
}

if(substr($_data['url'],0,5) == 'https'){
    curl_setopt( $_curl, CURLOPT_SSL_VERIFYPEER, false );
}

curl_setopt($_curl, CURLOPT_URL, $_data['url']);
curl_setopt($_curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($_curl, CURLOPT_TIMEOUT, 60);
curl_setopt($_curl, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($_curl, CURLOPT_HEADER, 0);
curl_setopt($_curl, CURLOPT_FOLLOWLOCATION, 1);

if(!empty($_data['access'])){
    curl_setopt( $_curl, CURLOPT_USERPWD, $_data['access']);
}

$agent = 'Mozilla/5.0 (X11; U; Linux x86_64; pl-PL; rv:1.9.2.22) Gecko/20110905 Ubuntu/10.04 (lucid) Firefox/3.6.22';

if(!empty($_SERVER['HTTP_USER_AGENT'])){
    $agent = $_SERVER['HTTP_USER_AGENT'];
}

curl_setopt($_curl, CURLOPT_USERAGENT, $agent);
curl_setopt($_curl, CURLOPT_FAILONERROR, 1);

$data = curl_exec($_curl);

EDIT

Я делаю простой скрипт php -

 echo '1';
 sleep(16);
 echo '2';

Но я тоже получаю 500 ошибок. Я пытаюсь это в apache2 и lighttpd. Чем я уверен - это ошибка конфигурации системы ...

EDIT Проблема решена. Проблема была в настройке сервера. Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

Убедитесь, что max_execution_time определено правильно, используя phpinfo().

Или попробуйте использовать set_time_limit().

<?php
// run indefinitely
set_time_limit(0);
0 голосов
/ 20 марта 2012

Внимательно проверьте логи. Чтобы отобразить ошибку, добавьте следующий код:

ini_set('error_reporting', E_ALL);
error_reporting(E_ALL);
ini_set('log_errors', true);
ini_set('html_errors', false);
ini_set('error_log', dirname(__FILE__).'script_error.log');
ini_set('display_errors', true);
...