最近寫一個程序的時候,有一個腳本的執行時間比較長,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 類型的指令,其它的不行。