我有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中尝试这个。 我非常确定 - 这是系统上的错误配置......
修改 的 问题解决了。问题是服务器磅的配置。谢谢你的帮助。
答案 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);