為什麼「set_time_limit」和「ini_set(\'max_execution_time\')」在啟用了安全模式的遠端伺服器上無效?

DDD
發布: 2024-10-31 09:45:02
原創
714 人瀏覽過

Why are `set_time_limit` and `ini_set('max_execution_time')` ineffective on my remote server with safe mode enabled?

PHP 時間限制函數在遠端伺服器上無效

使用set_time_limit(50) 或ini_set('max_execution_time', 50) 設定時間限制時在本機,檢索max_execution_time 會產生所需的值。然而,在不同的伺服器上,它會恢復為預設值(30 秒),導致這些功能無效。

說明

問題的出現​​是由於 安全模式遠端伺服器上的設定。在 PHP 的安全模式下,無法使用 ini_set() 修改 max_execution_time 設定。此限制也適用於 set_time_limit()。

解決方法

要解決這個問題,有兩個選項:

  1. 停用安全模式:這可以透過修改伺服器的配置來完成。但出於安全考慮,一般不建議這樣做。
  2. 修改 php.ini: 編輯遠端伺服器上的 php.ini 文件,並將 max_execution_time 設定為所需的值。

安全模式限制的原因

PHP 中引入了安全模式,透過限制腳本可以執行的某些操作來增強安全性。防止腳本無限期運行就是這些安全措施之一。

注意: PHP 手冊明確指出 set_time_limit() 和 ini_set('max_execution_time', 50) 在安全時沒有任何作用模式已啟用。唯一的解決方法是停用安全模式或調整 php.ini 檔案中的時間限制。

以上是為什麼「set_time_limit」和「ini_set(\'max_execution_time\')」在啟用了安全模式的遠端伺服器上無效?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板