2017-05-31 39 views
0

我編寫了一個腳本來從我們的服務器收集某些配置數據以比較不同的環境。爲此,我使用php -i命令獲取PHP設置。php.ini與php的信息不同(僅限於cli)

我注意到現在'php -i'的輸出沒有顯示與加載的php.ini文件內部相同的值。

# /usr/local/zend/bin/php -c /usr/local/zend/etc/php.ini -i | grep -E -e 'Configuration File|max_exec' 

Configuration File (php.ini) Path => /usr/local/zend/etc 
Loaded Configuration File => /usr/local/zend/etc/php.ini 
max_execution_time => 0 => 0 

# cat /usr/local/zend/etc/php.ini | grep max_exec 
max_execution_time=1200 

請注意,這只是php CLI,不涉及服務器。我覈實了以下幾件事:

  • 有掃描其他的.ini文件,但其中沒有包含的max_execution_time指令。
  • PHP -i不報告的php.ini裏有語法錯誤(如其他問題可能出現的問題提到)

回答

0

您無法爲CLI設置max_execution_time。見the manual,在節段「重寫的php.ini指令」:

PHP在shell環境往往被用於更多元化的目的,而不是典型的基於Web的腳本,並作爲這些可以很長時間運行,最大執行時間設置爲無限制。

換句話說,無論你在php.ini中爲max_execution_time設置什麼,CLI都會覆蓋它爲無限。

如果您想限制腳本的執行時間,您的可以在腳本本身中使用set_time_limit()函數。

0

The docs狀態

從命令運行PHP行默認設置爲0.

我不認爲這個設置在CLI中有任何意義,並不是從php.ini讀取。

澄清:你仍然可以ini_set它和CLI會相應的行爲,它似乎並沒有從php.ini文件中讀取。