У меня есть этот код
$url="site.com";//~
$opts=array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept: */*i\r\n".
"User-Agent: Your application name\r\n",
"ignore_errors" => true,
"timeout" => 1800
),
"ssl"=>array(
"allow_self_signed"=>true,
"verify_peer"=>false,
"verify_peer_name"=>false,
)
);
$page = file_get_contents($url, false, stream_context_create($opts));
...
...
Если $ URL (веб-страница) небольшого размера — скрипт работает хорошо.
Но когда размер большой, а время работы начинает превышать 120 секунд —
процесс собирается прерваться и отображается 504 ОШИБКА.
В начале сценария я добавляю:
ini_set('max_execution_time',18000);
ini_set('default_socket_timeout',18000);
ignore_user_abort(true);
ini_set('memory_limit','512M');
В ini.php Я добавляю следующее:
max_execution_time = 18000;
max_input_time = 18000;
Но ничего не помогает.
Вопрос: Как продлить время выполнения скрипта — более 120 секунд?
PS: Все вышеперечисленное (max_execution_time, …) изменено в соответствии с указанными phpinfo ()). Но параметры realpath_cache_size а также realpath_cache_ttl (в phpinfo () написано, что равно 120) не меняется. Может быть проблема в этом?
Ваш код работает так долго, как вы его установили,
Infact, если вы просто добавите в начало своего кода
set_time_limit(0);
Это не остановится до конца,
Однако, если вы хотите дождаться вывода, вам нужно установить ограничение времени ожидания Apache2, а также ограничение времени ожидания вашего браузера.
Других решений пока нет …