1

コマンド ラインと apache を使用してスクリプトを実行するときに、開いているファイルの制限に問題があります。

私のApacheサーバーはユーザー「apache」の下で実行されており、次のように/etc/security/limits.confファイルで制限が上書きされています。

apache soft nofile 10240
apache hard nofile 40960

テストに使用する簡単なスクリプトがあります。

<?php
system('whoami');
system('ulimit -a | grep open');

ブラウザからこのスクリプトを実行すると、次のようになります。

apache
open files                      (-n) 1024

しかし、ユーザーapacheの下でコマンドラインで実行すると、次のようになります:

[reza@app pdf]$ sudo -u apache php script.php
apache
open files                      (-n) 10240

誰かがこの不一致の原因を説明できますか?

(それが ServerFault の質問かどうかわからない場合は、そこに移動してください)

乾杯

4

1 に答える 1

3

コマンドラインから実行する場合、apacheユーザーの制限が適用されます。Webサーバーにアクセスすると、Webサーバーを起動した環境からの制限が適用されます。ulimitApacheWebサーバーを起動したスクリプトにステートメントを追加することをお勧めします。

于 2013-01-26T00:22:09.270 に答える