前几天写一个程序的时候,有一个脚本的执行时间比较长,100s+,但是php.ini默认的脚本超时时间是30s,所以自然而然的中断了,加上set_limit_time(0),发现函数被禁用了,汗。
到论坛问客服,客服说因为是共享服务器,为了避免某一个虚拟机内的脚本有死循环,使CPU飙升,就关闭了这个函数,听到这个结果,我异常蛋疼。
在蛋疼了一天以后,有个会员给提供了一个方法,利用htacces修改脚本超时时间等php.ini参数。试了一下,嘿,还真可以,又忽然想到了ini_set()这个函数,试了一下,依然可以,哇嘎嘎,我可以邪恶了~
实例:
# 先以htaccess为例 # 示例: # php_value 参数名 参数值 # 实例: php_value max_execution_time 600 # 这样,脚本超时时间就改为了600(十分钟)了
这是.htaccess的写法,不过貌似这样写之后,rewrite都失效了?反正我同目录下的dz伪静态没用,一直404,汗,方便没好货啊,不过如果禁用了ini_get和ini_set,这个方法还是可取的。
下面看php的:
<?php echo "修改前:".ini_get("max_execution_time"); if(ini_set("max_execution_time",600)) echo "修改ing..."; else exit("ini_set()函数被禁用"); sleep(3); echo "修改后:".ini_get("max_execution_time"); ?>
刚才忘了,最后加一句:htaccess那个只能用于 PHP_INI_ALL 或 PHP_INI_PERDIR 类型的指令,其它的不行。