2012-01-09 3 views
0

가끔씩 스크립트 실행 오류가 발생합니다. 여기서 30 초 이상 걸립니다. 항상 커넥터 파일에 있습니다. 모양이 분명하고 아무 말도하지 않으면 알려주시겠습니까 ...PHP - 최대 실행 시간이 30 초를 초과했습니다.

저는 VPS를 사용하고 있으므로 서버를 완벽하게 제어 할 수 있으므로 필요한 변경 작업을 수행 할 수 있습니다.

session_start(); 
date_default_timezone_set('Europe/London'); 
$uTime = time(); 
$uDate = date('Ymd',$uTime); 
$onlineLimit = 1800; 
$activeLimit = 3628800; 
$fDate = date('Ymd', strtotime('next monday')); 
$time_start = microtime(true); 

$db = mysql_connect("localhost", "xxxxxxx", "xxxxxxxx") or die("Could not connect."); 
if(!$db) 
die("no db"); 
if(!mysql_select_db("xxxx",$db)) 
die("No database selected."); 
if(!get_magic_quotes_gpc()) 
{ 
    $_GET = array_map('mysql_real_escape_string', $_GET); 
    $_POST = array_map('mysql_real_escape_string', $_POST); 
    $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE); 
} 
else 
{ 
    $_GET = array_map('stripslashes', $_GET); 
    $_POST = array_map('stripslashes', $_POST); 
    $_COOKIE = array_map('stripslashes', $_COOKIE); 
    $_GET = array_map('mysql_real_escape_string', $_GET); 
    $_POST = array_map('mysql_real_escape_string', $_POST); 
    $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE); 
} 
    mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'")or die(mysql_error()); 

    $page = $_SERVER['PHP_SELF']; 
    $season = mysql_fetch_assoc(mysql_query("SELECT `id`,`start`,`end` from `season` order by `id` DESC limit 0,1")); 
    $seasonDays = round((strtotime($season['end'])-strtotime($season['start']))/86400); 
    $currentDay = ceil(($uTime - strtotime($season['start']))/86400); 
+0

어떤 아이디어? – slugonamission

+0

오류를 재현하기가 쉽니 까? 그렇다면 파일의 여러 지점에 echo 문을 넣어 어떤 행이 시간 초과되는지 확인하는 데 도움이됩니다. 그들은 'echo "step 1", "echo"step 2 "'등과 같이 간단 할 수 있습니다. – MrGlass

+0

코드에서 아무 것도 타임 아웃을 일으키지 않아야합니다. –

답변

3
내가 php.ini 파일에서 높은 max_execution 시간을 설정합니다 그것이 죽을 것이다 위치를 볼 수

...

4

그것은 시간 제약없이 실행할 수, 코드의 상단에 set_time_limit(0);를 추가 .

업데이트은 최대 실행 시간 (초)을 set_time_limit(x); (으)로 설정 한 주석에 언급 된대로 안전해야합니다. 0 = 무한

+2

나는 투표했습니다,하지만 진짜 대답은 없다 ... 개인적으로 끝없는 루프를 만드는 경우 스크립트가 다음에 영원히 실행할 수 있으므로 0 (무한대)으로 제한 설정을 권장합니다. 답변 주셔서 감사합니다 – DugoutSoccer

+0

0으로 설정하면 실제로 좋지 않을 것입니다. set_time_limit()는 인라인으로 수행 할 수 있기 때문에 실행 시간 제한을 수정하는 데 방해가되지 않는 방법이기 때문에 투표를 시작합니다. – Aknosis

0

또한 귀하의 사이트의 루트에 .htaccess 파일에 설정할 수 있습니다 : 그것은에 죽으면 어떤 라인

php_value max_execution_time 3600 
관련 문제