[英]php max execution time ignoring php.ini
我正在嘗試通過phpMyAdmin導出大型數據庫。 我吉普收到一個腳本停止運行的錯誤,因為達到了600秒的最大執行時間(或類似的時間)。 我嘗試將php.ini
max_execution_time
設置為0和-1。 正如我在phpinfo()
看到的那樣,此更改已生效,但仍然出現錯誤。 另一件事是,最初(在我將其更改為0之前)也不是600。 那是180! 這600套在哪里?
查看是否在某處手動設置。 假設您使用的是UNIX類型的平台:
find /path/to/root/of/phpmyadmin -name "*.php" -print0 | xargs -0 grep "max_execution_time"
您的Web服務器可以具有其他超時配置,這些配置也可能會中斷PHP執行。 Apache具有Timeout指令,而IIS具有CGI超時功能。 有關特定的詳細信息,請參見Web服務器文檔。
不要使用phpMyAdmin導入大文件。 嘗試使用mysql CLI導入數據庫的轉儲。 將SQL文件傳輸到服務器,並使用PHP腳本(例如shell_exec或system)在服務器上執行以下命令
mysql --user =用戶--password =密碼數據庫<database_dump.sql。
當然,數據庫必須存在,並且您提供的用戶應該具有更新數據庫的必要特權。
默認情況下,PHP使用以下三個指令在所有PHP腳本上設置資源限制:=> max_execution_time
:每個腳本的最大執行時間,以秒為單位(默認為30秒)
=> max_input_time
:每個腳本可用於解析請求數據的最長時間(60秒)
=> memory_limit
:腳本可能消耗的最大內存量(默認為8MB)
您的php腳本超時可能是由於資源限制。 您需要做的就是設置新的資源限制,以便腳本可以執行。
如果這也不起作用,則可以使用set_time_limit(N)
函數進行設置,該函數以秒為單位設置時間限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.