ApacheとMySQLを実行しているサーバー(Leopardサーバー、私の選択ではありません)があります。数か月前、サーバーはランダムな間隔で「禁止」エラーを発生させ始め、PHPアプリケーションへのアクセスを妨げました。この動作はランダムに停止しました。
さて、数日前にPassengerをインストールし、Sintra/Rackアプリケーションをデプロイしました。アプリケーションは、(たとえば)/Library/WebServer/Documents/presto/current/public
のユーザーacarneg
として実行され、acarneg
が構造全体を所有します。 _www
ユーザーは、ACL chmod +a "_www allow read,write,..."
を介してディレクトリにアクセスできます。
すべてがうまくいきます! しかしランダムな間隔(多くの場合約12時間または約24時間)の後、乗客はエラーをスローし、PHPアプリケーションの実行も妨げます。Passenger Error #2. Cannot stat file config.ru. Permission denied.
しかし権限は変更(確認済み)されておらず、エラーを解決するために必要なのはSudo apachectl graceful
だけです。
権限が変更されておらず、Apacheに正当な問題がないように思われる場合、この混乱の原因は何ですか?なぜ以前に停止したのか、なぜ再開したのか!?!?!?
助けてくれてありがとう!
Apacheはおそらくオープンファイルの最大制限に達しています。 Apacheはパーミッションエラーを引き起こし、Apacheをリロードすることで解決するのに時間がかかる理由も説明します。
私はMacにあまり詳しくありませんが、プロセスの開いているファイルをチェックするコマンドがあるはずです。 (例:lsof、pfiles、procfiles)。
考えられる解決策は次のとおりです。
Apacheドキュメントの ファイル記述子制限 も参照してください。
ファイルシステムストレージはどこにありますか?問題がチケットの期限切れになるように、データやAFSなどにアクセスするためにKerberosが必要ですか?