7

データベースと対話するアプリケーションがあります。突然、ときどき、Server connection ResetWeb ブラウザでページにエラーが表示されます。さらに驚くべきことに、ページにアクセスするlocalhostと avast でアラートがトリガーされます。

を使用してページを更新するCtrl+Rと、ときどき発生します。PHP はエラー メッセージを表示しておらず、サーバーの応答に通常より時間がかかっているようです。

Apache 2.4、PHP 5.4.3 で wamp を使用しています。デバッグを開始する場所や問題の場所についてはわかりません。

[Sun May 13 13:01:14 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sun May 13 13:01:14 2012] [notice] Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/0.9.8x configured -- resuming normal operations
[Sun May 13 13:01:14 2012] [notice] Server built: May 13 2012 12:51:11
[Sun May 13 13:01:14 2012] [notice] Parent: Created child process 3660
Apache server interrupted...
arn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Sun May 13 13:01:15 2012] [notice] Child 3660: Child process is running
[Sun May 13 13:01:15 2012] [notice] Child 3660: Acquired the start mutex.
[Sun May 13 13:01:15 2012] [notice] Child 3660: Starting 64 worker threads.
[Sun May 13 13:01:15 2012] [notice] Child 3660: Starting thread to listen on port 80.
[Sun May 13 13:01:15 2012] [notice] Child 3660: Starting thread to listen on port 80.
[Sun May 13 13:01:28 2012] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Sun May 13 13:01:28 2012] [notice] Child 3660: Exit event signaled. Child process is ending.
[Sun May 13 13:01:29 2012] [notice] Child 3660: Released the start mutex
[Sun May 13 13:01:30 2012] [notice] Child 3660: All worker threads have exited.
[Sun May 13 13:01:30 2012] [notice] Child 3660: Child process is exiting
[Sun May 13 13:01:30 2012] [notice] Parent: Child process exited successfully.

アップデート:

「接続要求」が発生するとcachegrind、メソッドのコールスタックの部分的なリストが表示されます。すべてのコードを実行しないことを意味します。いくつかのrequire_once呼び出しとそれを示しています。次回ページの取得を再試行すると、ページが実行され、コールスタック全体が表示されます。

「接続要求が発生」すると表示されます

18 different functions called in milliseconds (1 runs, 18 shown)

再試行後

220 different functions called in 329 milliseconds (2 runs, 220 shown)

なぜ2回の実行を示しているのかわかりません。また、ページの実行に時間がかかっています。100ミリ秒未満で実行する前に。

4

8 に答える 8

1
  1. コンピューターを再起動し、ウイルス対策を含む実行中のすべてのアプリケーションを閉じて無効にし、実行中のアプリケーションの最小限のセットのみを保持します。干渉できないと確信しているアプリケーションでさえ、すべてを閉じます-あなたは決して知りません..

  2. PHP がすべてのエラー/警告を表示することを確認します。

    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    

PHP から受け取るすべての警告を必ず確認してください。それはあなたに手がかりを与えるかもしれません。

  1. 問題の切り分けを試みます。問題の原因であると思われるコードのチャンクにコメントを付けます。エラーの受信を停止するまでコメントを続けます。次に、問題のある場所が見つかるまでコメントを外します。このようにして、問題のあるコードを切り分けることができ、それを見れば問題を理解できるかもしれません。

  2. ログ ファイルに書き込む (または単にエコーする) ステートメントを多数追加します。次に、ログ ファイルを分析し、どの時点でエラーが発生したかを理解して、問題を特定することができます...

最終的に、問題のあるコード ブロックが見つかり、問題を追跡できるようになります。うまくいけば :)

于 2013-04-22T17:37:42.577 に答える
0

apache listen port を 80 から 8080 filehttpd.confに変更listen 80listen 8080、apache に変更して再起動します。

于 2013-04-18T13:47:38.520 に答える
0

mod_security が有効になっている場合は、無効にしてみて、同じことが起こるかどうかを確認してください.時々、http に行くだけの mod_security が失敗し (データベースにアンパサンドを使用してデータを挿入するのと同じくらい簡単な場合があります)、書き込みません。サーバーログにエラーが発生すると、トラブルシューティングが難しくなり、あなたが経験していることと似ているように聞こえます.mod_securityを無効にしてサーバーを再起動し、動作が停止したかどうかを確認します!

于 2013-04-22T17:57:59.323 に答える
0

ウイルス対策を一時的に無効にして再試行します

于 2013-04-18T15:00:22.833 に答える
0

PHP 経由で Apache を再起動するには、PHP で次のコードを使用します。

exec('/etc/init.d/httpd graceful');

また、マニュアルを見て...そしてhttpdへのパスを変更します

于 2013-04-18T12:55:55.773 に答える