2017-05-31 5 views
0

私は私たちのサーバーから特定の構成データを集めてさまざまな環境を比較するスクリプトを書いています。このためには、php -iコマンドを使ってPHP設定を取得します。php.iniとphp info(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.iniの内側に構文エラーを報告しません-i PHP(可能性の問題として述べた他の質問など)

答えて

0

CLI用にmax_execution_timeを設定することはできません。セクションで、「オーバーライドphp.iniのディレクティブ」をthe manualを参照してください:シェル環境で

PHPは、一般的なWebベースのスクリプトより目的のはるかに多様な範囲のために使用される傾向にある、とのようにこれらは非常に長時間実行することができ、最大実行時間は無制限に設定されます。

つまり、max_execution_timephp.iniに設定しても、CLIは無制限にすることができます。

スクリプトの実行時間を制限したい場合は、スクリプトをスクリプト自体に使用してください(set_time_limit())。

0

The docs

コマンドからPHPを実行している状態デフォルト設定は0です。

この設定はCLIでは意味がなく、php.iniから読み込まれません。

説明のために:それでもini_setとそれに応じてCLIが動作しますが、それはphp.iniファイルから読み取られないようです。

関連する問題