트랜잭션 시간 초과를 늘리는 방법은 무엇입니까? 동영상을 올리고 싶지만 큰 동영상이 업로드되지 않습니까?
오류가 발생합니다. The process *** exceeded the timeout of 60 seconds.
트랜잭션 시간 초과를 늘리는 방법은 무엇입니까? 동영상을 올리고 싶지만 큰 동영상이 업로드되지 않습니까?
오류가 발생합니다. The process *** exceeded the timeout of 60 seconds.
답변:
php.ini에서 일부 설정을 변경해야합니다.
upload_max_filesize = 2M
;or whatever size you want
max_execution_time = 60
; also, higher if you must - sets the maximum time in seconds
PHP.ini의 위치는 환경에 따라 다릅니다. 자세한 정보 : http://php.net/manual/en/ini.list.php
런타임 중에도 할 수 있어야합니다.
set_time_limit(100);
http://php.net/manual/en/function.set-time-limit.php
또는 vhost-config에서
php_admin_value max_execution_time 10000
글로벌 실행 시간 제한을 LOW로 설정하는 것은 그다지 신뢰할 수없는 애플리케이션의 성능 이유에 대한 좋은 생각입니다. 따라서 해당 스크립트가 절대적으로 필요한 시간 동안 만 실행되도록 허용 할 수 있습니다.
추신 : post_max_size 및 upload_max_filesize를 잊지 마십시오 (첫 번째 답변이 모두 준비된 것처럼)
Hannes의 답변을 완성합니다.
php.ini에서 일부 설정을 변경해야합니다.
upload_max_filesize = 2M
;or whatever size you want
max_execution_time = 60
; also, higher if you must
누군가 무제한으로 넣으려면 (이유는 모르겠지만 원하는 경우) 시간을 0으로 설정할 수 있습니다.
php.ini에서 일부 설정을 변경해야합니다.
upload_max_filesize = 0
max_execution_time = 0
그리고 php.ini가 어디에 있는지 모른다면. 서버에서 "name.php"파일을 만들고 다음을 넣을 수 있습니다.
<?php phpinfo(); ?>
그리고 웹 사이트에서 php.ini의 설정을 볼 수 있으며 어디에 있는지 표시되어 있습니다.
php.ini에 액세스 할 수없는 경우 두 가지 옵션이 더 있습니다.
"name.php"파일에서이 줄을 직접 설정할 수 있지만이 옵션에 대한 upload_max_filesize를 찾을 수 없습니다.
set_time_limit(0);
또는 ".htaccess"
php_value upload_max_filesize 0
php_value max_execution_time 0
해야 할 일이 1 또는 2 페이지에만 해당되는 경우 전체 응용 프로그램에 영향을 미치지 않도록 set_time_limit 를 사용하는 것이 좋습니다 .
set_time_limit(some_values);
그러나 물론이 두 값 (post_max_size 및 upload_max_filesize)은 조사 대상입니다.
ini_set 함수 를 통해 설정할 수 있습니다.
ini_set('post_max_size','20M');
ini_set('upload_max_filesize','2M');
또는 Hannes의 응답과 같은 php.ini 파일에서 직접 또는 아래와 같이 .htaccess에서 설정하십시오.
php_value upload_max_filesize 2M
php_value post_max_size 20M
위의 답변 외에도 set_time_limit()
기능을 사용할 수 있습니다 .
http://php.net/manual/en/function.set-time-limit.php
0
인수로 전달 하면 스크립트가 시간 제한없이 실행됩니다.
다른 사람이 언급 한 php.ini 설정 외에도 Microsoft IIS 서버를 사용 하는 경우 IIS 서버 관리자에서 PHP FastCGI 응용 프로그램의 실행 시간 제한 설정을 늘려야 할 수 있습니다.
1 단계) IIS 서버 관리자를 엽니 다 (일반적으로 시작 메뉴의 서버 관리자 아래 에있는 도구 / 인터넷 정보 서비스 (IIS) 관리자 ).
2 단계) 기본 연결을 클릭합니다 (특정 도메인에 국한되지 않음).
3 단계) IIS 섹션에서 FastCGI 설정을 찾습니다 (아래 참조).
4 단계) 거기에서 PHP 애플리케이션을 마우스 오른쪽 버튼으로 클릭하고 편집 ...을 선택 합니다.
5 단계) 제한 시간을 확인합니다 (아래 참조).
제 경우에는 기본 타임 아웃이 70 초와 90 초였습니다. 그 중 전자는 70 초 이상 걸리는 PHP 스크립트에서 500 내부 서버 오류 를 일으켰 습니다.
나는 당신이 PHP 시간 초과에 대해 구체적으로 묻는 것을 알고 있지만, 다른 사람이 언급하지 않은 것은 웹 서버에 시간 초과가있을 수 있으며 PHP 시간 초과와 매우 유사 할 수 있다는 것입니다.
따라서 시도한 경우 :
그리고 phpinfo () 함수로 max_execution_time이 실제로 증가했는지 확인한 다음이를 .htaccess에 추가하여 Apache 자체가 시간 초과되지 않도록 할 수 있습니다.
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]
자세한 정보 : https://www.antropy.co.uk/blog/php-script-keeps-timing-out-despite-ini-set/
먼저 php.ini
파일 경로를 확인하십시오 phpinfo()
. 그리고 변경된 PHP.INI
매개 변수 :
upload_max_filesize = 1000M
memory_limit = 1500M
post_max_size = 1500M
max_execution_time = 30
Apache를 다시 시작했습니다.
set_time_limit(0); // safe_mode is off
ini_set('max_execution_time', 500); //500 seconds
참고 : 명령을 사용 php.ini
하여 Linux 에서 찾을 수도 있습니다.
locate `php.ini`
php.ini를 편집 할 수없는 경우 (예 : 서버에서) php 코드 내에서 php.ini 매개 변수를 변경할 수 있습니다. 시험:
ini_set('max_execution_time', 'NUMBER OF SECONDS TO ALLOW BEFORE TIMEOUT');
그래도 작동하지 않으면 동일한 방식으로 'set_time_limit'를 설정해보십시오. 그 외에는 호스트에 연락하는 것이 유일한 옵션이라고 말하고 싶습니다. 이러한 설정은 안전 모드에서 수정할 수 없습니다.
선택 사항 : php.ini에 대한 구성을 설정했지만 여전히 업로드 할 수없는 경우
-이것은 오류 코드를 확인하는 PHP 기능입니다
$error_type = [];
$error_type[0] = "There is no error";
$error_type[1] = "The uploaded file exceeds the upload_max_filesize directive in php.ini.";
$error_type[2] = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
$error_type[3] = "The uploaded file was only partially uploaded.";
$error_type[4] = "No file was uploaded.";
//$error_type["5"] = "";
$error_type[6] = "Missing a temporary folder. Introduced in PHP 5.0.3.";
$error_type[7] = "Failed to write file to disk. Introduced in PHP 5.1.0.";
$error_type[8] = "A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";
//------------------------------
//--> show msg error.
$status_code = $_FILES["uploadfile"]["error"];
if($status_code != 0){
echo $error_type[$status_code];
exit;
}
시간 제한 을 실제로 늘리 려면 먼저 현재 값을 얻는 것이 좋습니다. set_time_limit
항상 시간 제한을 늘리는 것은 아닙니다. 현재 값 (예 :부터 php.ini
또는 이전에 설정 됨)이의 현재 호출에 사용 된 값보다 높으면 제한 시간 set_time_limit
이 줄어 듭니다 !
그래서 이런 작은 도우미는 무엇입니까?
/**
* @param int $seconds Time in seconds
* @return bool
*/
function increase_time_limit(int $seconds): bool
{
return set_time_limit(max(
ini_get('max_execution_time'), $seconds
));
}
// somewhere else in your code
increase_time_limit(180);