У вас есть две отдельные проблемы здесь. Первое - это ограничения хостинг-пакета 1and1. Я предполагаю, что вы используете их пакет общего хостинга. Это будет процессор, который использует любой отдельный скрипт. У моего хоста есть «RLimitCPU 15
», что означает, что ни один скрипт не может занять больше 15 секунд процессора Возможно, ваши приложения «сталкиваются» с этим пределом и истекают. Я использую стандартный цикл синхронизации вокруг всех моих сценариев, где я добавляю это в начало своих сценариев:
define( 'START_TIME', microtime() );
и это до конца каждого скрипта
pageTimer( "Page $pageName completed" );
где pageTimer ():
/**
* Simple debug transaction timer
* @param $eventName Timer event being displayed
*/
function pageTimer( $eventName ) {
static $u0, $s0;
if( is_null( $s0 ) ) {
list( $u0, $s0 ) = explode( " ", START_TIME );
debugMsg( date( 'Y-m-d H:i:s', $s0 ) . " - Transaction timer set at 0 mSec" );
}
list( $u1, $s1 ) = explode( " ", microtime() );
$elapsed = ( ( (float)$s1 - (float)$s0 ) + ( (float)$u1 - (float)$u0 ) ) * 1000;
debugMsg( sprintf( "\t%s at %u mSec", $eventName, (int) $elapsed ) );
}
, где debugMsg()
просто выполняет error_log( $msg . "\n", 3, $debugFile );
, и я регулярно проверяю время выполнения скрипта на странице. Делая это, вы знаете, если что-то занимает слишком много времени Второе, что вы должны сделать, это установить в журнале ошибок личный файл в вашем каталоге и собрать все ошибки, а затем регулярно проверять это.
Второй вопрос - ваши перенаправления. Это должно не вызывать эту неустойчивую проблему.