2011-10-05 113 views
9

我的脚本中有一些任务是关于使用ffmpeg转换视频。我使用codeigniter 2.0.3来执行此操作,并在库中找到脚本并使用shell_exec()运行ffmpeg。PHP忽略我的max_execution_time

我的php脚本有3个任务。

  1. 上传文件
  2. 视频转换的FLV
  3. 生成Thumb
  4. 保存到数据库中。

当我上传文件时,我的php脚本开始转换我上传的视频。但是,转换结束时间大约超过5分钟。它不会继续产生拇指。与说

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/

我在php.ini中设置我max_execution时间,max_input_time设置等,以3600也在我的PHP脚本中加入set_time_limit()函数和set_ini()。但是,它仍然会出错。

但是,当我上传短视频,其完成。

+0

您是否检查过'phpinfo();'所有参数实际上是否已更改? – zerkms

+0

您是否在编辑php.ini后重新启动php? – 2011-10-05 02:22:46

+0

这可能是托管公司阻止你这样做吗?有一个安全设置,不允许你改变某些主机喜欢使用的最大执行时间。我会尝试找到设置名称 – Ben

回答

17

好的。我这样做我的自我。我已经联系了我的老师。 CodeIgniter没有在文档中包含这些内容。

在系统/芯线103/CodeIgniter.php

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0) 
{ 
    @set_time_limit(300); 
} 

我试图改变的价值和它的作品。

+1

这里是提交https://github.com/bcit-ci/CodeIgniter/commit/f566af5ffb8f2e8d49bd0b206c6ee29c8bc35a78 – macki

2

解决方案改变set_time_limit()在CodeIgniter.php中的功能是有效的,但我认为改变框架的核心文件并不是一个好主意。

我发现了另一个决定,你可以在你需要的地方打电话set_time_limit(),它将在CodeIgniter.php中重叠设置时间限制。

0

Codeigniter 2具有以300运行的set_time_limit函数。升级到Codeigniter 3后,有一件事开始失败。查看这篇文章后,我意识到set_time_limit调用在3中被删除了,所以你可能不得不在接受的答案中添加代码来解决你的特定问题代码。我不建议将它添加回Codeigniter.php