PHP Ignoring my max_execution_time
I have some task in my script that is about converting video with ffmpeg . I do this with codeigniter 2.0.3 and locate the script at libraries and use shell_exec() to run ffmpeg.
There are 3 tasks in my php script.
- Upload File
- Convert video to .flv
- Generate thumb
- Save to db.
When I upload file, my php script start to convert my uploaded video. But when converting is end about over 5 minutes.开发者_如何转开发 Its not continue to generate thumb. And Its say
PHP Fatal error: Maximum execution time of 300 seconds exceeded in C:\AppServ\www\mis\application\libraries\my_video_utility.php on line 102, referer: http://localhost/mis/test/
I have set my max_execution time, max_input_time, etc to 3600 in php.ini also add set_time_limit() and set_ini() in my php script. But, its still get error.
But, when I uploaded short video, its done.
Ok. I do this my self. I have contacted my teacher. There is a something that CodeIgniter not include this in their documentation.
At line 103 in system/core/CodeIgniter.php
if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
@set_time_limit(300);
}
I try to change the value and it works.
Solution to change set_time_limit()
function in CodeIgniter.php is works, but I'm think it's not good idea to change framework's core files.
I'm found another decision, you can call set_time_limit()
where you need and it will be overlapp setting of time limit in CodeIgniter.php.
Codeigniter 2 has the set_time_limit function run with 300. After upgrading to Codeigniter 3, one thing started failing. After viewing this post, I realized that the set_time_limit call was removed in 3, so you may have to add the code in the accepted answer to your particular problem code. I would not recommend adding it back into the Codeigniter.php
精彩评论