Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> Windows + APACHEサービスはよく問題を解決します

Windows + APACHEサービスはよく問題を解決します

  

ラウンドトゥットと一致するホストはWindows 2003 Server + Apache + PHP + Mysqlです、ウェブサイトが最初にオンラインになったとき、私はホストの操作とメンテナンスで多くの問題に出会いました。まれな問題を言うだけでなく、数日間頭痛を引き起こしました。つまり、APACHEが間に合わずに自動的に停止し、Windowsシステムログに次のように表示されます。1(0x1)サービスエラーが原因でApache2サービスが停止しました。 APACHEエラーログの最終的な内容は次のとおりです。

[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358:子:MaxConnectionsPerChildに達したためプロセスが終了しました新しい子プロセスを再起動するように親に通知します。

[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424:親:再起動シグナルを受信しました - 再起動サーバー。

[Thu Mar 21 01:08:11.000000 2013] [ssl:warn] [pid 2992:tid 436] AH01873:Init:セッションキャッシュが設定されていません[ヒント:SSLSessionCache]

[Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364:子:全てのワーカースレッドが終了しました。

その他の内容はSSL以外は普通のようですSSLの設定に問題があると思いましたが、設定後、「セッションキャッシュが設定されていません」というプロンプトは表示されませんでしたが、それでも問題は解決しません。 APACHEのエラーログから手がかりを探し続ける、今度は私が使ったキーワードは "MaxConnectionsPerChild"です、この設定は多くの人に知られていないかもしれません、これは設定値に達したとき、元々MaxRequestsPerChildと呼ばれるAPACHE2.4がこれに変更されたことを意味します、 APACHEは現在の子プロセスを終了し、メモリを解放してから新しい子プロセスを開きます。この設定はhttpd-mpm.confにあります。Windows環境で実行されているため、元の設定はWinNT MPMです。はい:

ThreadsPerChild 250

MaxConnectionsPerChild 10000

メモリオーバーフローを防ぐために、MaxConnectionsPerChildを0に設定しないでください。ただし、小さい値を設定することを検討してください。 500、テストを続けますが、いくら変更しても、APACHEは時々ハングアップします。オンラインの方法では、この問題は解決しませんでしたが、システムを再設定するという考えに移りました。 ...

この問題を解決する過程で、システムの実行速度が非常に遅いことがわかりましたタスクマネージャを開くと、実際にメモリが3を占めています。 G、APACHEが実際に子プロセスを終了させて​​いないこと、メモリが占​​有されて翻訳されていないこと、いくつかのインスピレーションを得たようです。このrootとMaxConnectionsPerChildの設定はあまり関係ありませんが子プロセスでスレッド数が制限された後、APACHEが現在の子プロセスを閉じてから新しい子プロセスを再度開いて失敗させようとするとどうなりますか? Windowsのログビューアを再度開いたところ、APACHEエラーと一緒に生成されたアプリケーションログにログが見つかりました。内容は「イベントIDの説明(487)(リソース(Zend Optimizer +)内)が見つかりませんでした」です。 '、これによると、私はこのエラーログの関連コンテンツをインターネットで検索し続けていますが、すべての解決策を試しても結果が得られないのは残念です。 php.iniを開き、以下の2行をコメントアウトして、問題はようやく解決しました.....

[zend]

zend_extension =" D:\\ php \\ ext \\ ZendOptimizer.dll"

このようにしてAPACHEはついに通常通りに動作します。

ラウンドトゥートと一致するホストは、Windows 2003 Server + Apache + PHP + Mysqlですが、Webサイトを最初にテストしたときに、ホストの運用と保守に多くの問題が発生しました。 Windowsのシステムログには、Apache2サービスが1(0x1)サービスエラーのために停止したことが示されています。 APACHEエラーログの最終的な内容は次のとおりです。

[Thu Mar 21 01:08:09.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00358:子:MaxConnectionsPerChildに達したためプロセスが終了しました[Thu Mar 21 01:08:09.203125 2013] [mpm_winnt:notice] [pid 2992:tid 436] AH00424:Parent:再起動シグナルを受信しました - サーバーを再起動しました。 21 01:08:11.000000 2013 [ssl:warn] [pid 2992:tid 436] AH01873:Init:セッションキャッシュが設定されていません[ヒント:SSLSessionCache] [Thu Mar 21 01:08:11.187500 2013] [mpm_winnt:notice] [pid 2988:tid 1696] AH00364:子:全てのワーカースレッドが終了しました。

他のコンテンツはSSLの警告を除いて普通のようですが、最初は明確ではありません。SSLの設定に問題があると思います。 SSLは設定されていますが、設定後に「セッションキャッシュが設定されていません」というプロンプトは表示されませんが、APACHEエラーログから手がかりを探し続け、今度はキーワードを使用しました。はMaxCoですnnectionsPerChild - この設定は多くの人に知られていないかもしれませんが、これはAPACHE2.4に変更されたもので、元々はMaxRequestsPerChildと呼ばれ、設定値に達するとAPACHEは現在の処理を終了します。子プロセスは、メモリを解放し、次に新しい子プロセスを開きます。この設定はhttpd-mpm.confにあります。これはWindows環境で実行されているため、WinNT MPMなので、元の設定は次のとおりです。

ThreadsPerChild 250

MaxConnectionsPerChild 10000

メモリオーバーフローを防ぐために、MaxConnectionsPerChildを0に設定するべきではないと言われていますが、小さい値に設定することも考えられるので、500に設定してテストを続けます。しかし、いくら変更したとしても、APACHEは時々ハングしてしまいますので、オンラインの方法で試してみましたが、結局、この問題を解決することはできませんでした。 >

この問題を解決する過程で、システムの実行速度が非常に遅いことがわかりましたタスクマネージャを開くと、メモリは実際には3G以上で、APを見つけるためだけに使用されています。これはMaxConnectionsPerChildの設定にはあまり関係がないようですが、子プロセスによって定義されたスレッド数に達した後です。 APACHEが現在の子プロセスを閉じ、新しい子プロセスを再起動して失敗させようとしたときに何が起こりましたか? Windowsのログビューアを再度開いたところ、APACHEエラーと一緒に生成されたアプリケーションログにログが見つかりました。内容は「イベントIDの説明(487)(リソース(Zend Optimizer +)内)が見つかりませんでした」です。 '、これによると、私はこのエラーログの関連コンテンツをインターネットで検索し続けていますが、すべての解決策を試しても結果が得られないのは残念です。 php.iniを開き、以下の2行をコメントアウトして、問題はようやく解決しました.....

[zend] zend_extension =" D:\\ php \\ ext \\ ZendOptimizer.dll"

このようにしてAPACHEはついに普通に走ることができます。

Copyright © Windowsの知識 All Rights Reserved