卷曲PHP - 奇怪的内部服务器错误

时间:2012-03-20 16:03:00

标签: php debian libcurl

我有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);

修改

我做简单的脚本php -

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

但我也得到500错误。 我在apache2和lighttpd中尝试这个。 我非常确定 - 这是系统上的错误配置......

修改 的 问题解决了。问题是服务器磅的配置。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

仔细检查日志。要显示错误,请添加以下代码:

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);

答案 1 :(得分:0)

确保使用max_execution_time正确定义phpinfo()

或尝试使用set_time_limit()

<?php
// run indefinitely
set_time_limit(0);