7
votes

Réinitialisation de serveur inattendue avec PHP et Apache

J'ai une application qui interagit avec une base de données. Soudainement et occasionnellement, les pages me manifestent Réinitialisation de la connexion de serveur code> Erreur dans mon navigateur Web. Plus sensiblement, l'accès à un localhost code> déclenche une alerte sur avast.

Si je rafraîchit les pages à l'aide de Ctrl + R code>, cela se produit de temps en temps. PHP ne montre aucun message d'erreur, et il semble que le serveur prend plus de temps pour répondre que d'habitude. P>

J'utilise WAMP avec Apache 2.4, PHP 5.4.3. Je suis désemparé de savoir où commencer le débogage ou où le problème est. P> xxx pré>

update: strong> p>

" Demande "se produit si on utilise cachegrind code> Il affiche une liste partielle de CallStack of Methody. signifie qu'il ne gère pas tout le code. Il montre des appels requis_once et cela. La prochaine fois si je réessaye pour obtenir la page, la page exécute et affiche l'ensemble de la piqystack. p>

lorsque "demande de connexion se produit" indique p> xxx pré>

après rétrayage P>

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


21 commentaires

Que disent les journaux Apache?


Avast comme dans le programme anti-virus ?? Crikey, que dit ce message?


@Codemonkey oui le virus anti-virus. Il dit que «l'URL malveillante a été bloquée»


@mkjasinski il n'a aucune erreur


La réinitialisation du serveur correspond toujours-t-elle aux avonses d'avast? J'avais l'habitude d'utiliser Avast et je ne me souviens pas de ce qu'il bloquait jamais de mes affaires, ce qui me ferait que cette erreur me causerait une préoccupation! Qu'est-ce que / les URL bloquées devraient-elles revenir?


Les deux se produisent parfois même si j'exécute les mêmes pages. J'ai également remarqué que l'URL à Avast Alert est également modifiée sur www.localhost.com/rest/of/the/url même si je venais de rafraîchir la page qui n'était que localhost / repos / de / URL


@Codemonkey non pas toujours. Les deux se passent de manière aléatoire / occasionnellement. je suis tellement confus


Êtes-vous absolument sûr que vous avez regardé les journaux d'erreur du serveur (ne pas accéder aux journaux)?


@holodoc oui. Si vous voulez voir le vidage du fichier. ihave mise à jour de l'OP


Avez-vous accès à un autre ordinateur que vous pouvez accéder à votre serveur WAMP, voir si cela a le même problème? Le reste de votre accès Internet est-il bien? Je serais tenté d'exécuter malwarebytes pour voir s'il y a quelque chose d'interférer, de vérifier le fichier d'héberges, des paramètres de proxy, etc. Si tout semble bien, je serais tenté de désactiver Avast pendant un moment et de voir si le problème disparaît


@Codemonkey je vais essayer de vos manières. Le reste de l'accès à Internet est bien. Est-il possible que le code de mine a gâché quelque part qui cause cela?


Il est possible, mais sans voir le code ni les données qu'il entend retourner, je devinerais simplement.


Utilisez-vous une commande inclure pour vous connecter au dB? Comme inclure ("db_connect.php") (contient toutes les instructions de connexion de dB). Si oui, utilisez include_once ('db_connect.php')


@AMIR Toutes les cours sont incluses à l'aide de * _ONCE ()


J'ai mis à jour la question. s'il te plait regarde.


Je ne comprends pas une autre chose s'il y a quelque chose avec le débordement de la mémoire, pourquoi ne montrez pas une erreur maximale de mémoire.


On dirait que vous utilisez SSL, en avez-vous besoin? Si non, désactivez-le comme vous pouvez avoir une erreur de configuration quelque part dans la configuration


Je soupçonne qu'Apache tente d'utiliser plus de ressources afin que votre système d'exploitation soit votre système d'exploitation ou que l'antivirus envoie le Single Kill pour l'empêcher d'obtenir plus de ressources. Vérifiez que le nombre autorisé de threads dans votre configuration Apache ajoutez également Apache dans votre liste de sécurité antivirus.


@fallenangel Si c'est une erreur de débordement de pile dans une routine de bibliothèque externe, PHP ne captira pas l'erreur. Ça va juste tuer le processus serveur. Vérifiez si vous avez une récursion infinie quelque part.


@cleong pouvez-vous expliquer que voulez-vous dire par Routine de la bibliothèque externe ?


Vous pouvez essayer de changer Apache Ecoutez des ports pour voir ce qui se passera dans le fichier journal.


8 Réponses :


0
votes

Pour redémarrer Apache via PHP Utilisez le code suivi dans PHP

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


1 commentaires

et sur un point de vue si votre serveur vous permet de le redémarrer en appelant un script arbitraire qui doit normalement être exécuté par le superutilisateur de l'intérieur, j'aurais très peur ..)



0
votes

Changer Apache Ecoutez le port de 80 à 8080 Fichier httpd.conf , modifier listen 80 to Écoutez 8080 et redémarrez Apache


0 commentaires

0
votes

Réessayer désactive temporairement l'antivirus


0 commentaires

0
votes

Peut-être que ce n'est pas une solution droite, mais pourquoi pas seulement essayer une autre version de wamp ou peut-être la configuration de votre horloge système correcte ?. et avez-vous essayé d'exécuter Apache dans une configuration minimale? Vous pouvez désactiver toutes les extensions et toutes les modules (INC PHP lui-même) et si Web Server fonctionnera comme prévu, vous pouvez transformer un par un de vos modules. Je ne connais pas votre environnement, mais vous pouvez également essayer de changer le numéro de fil de travail et d'autres valeurs au minimum. Je parie que cela n'aide pas mais au moins vous allez essayer.


0 commentaires

1
votes
  1. Redémarrez votre ordinateur et fermer / désactiver toutes les applications en cours d'exécution, y compris Anti-Virus, il suffit d'un ensemble minimal d'applications exécutées. Fermez tout même ces applications que vous êtes sûrs que vous ne pouvez pas interférer - vous ne savez jamais .. p> li>

  2. Assurez-vous que PHP affiche toutes les erreurs / avertissements: p>

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

0 commentaires

0
votes

Si vous avez activé MOD_Security activé, essayez de désactiver et de voir si la même chose se produit. Parfois, vous pouvez avoir sur vigilant mod_security qui ira à l'échec HTTP (peut parfois être aussi simple que l'insertion de données avec une ampères dans la base de données) et gagné 'T Écrire une erreur sur les journaux du serveur rendant difficile la dépannage, semble semblable à ce que vous rencontrez, je désactive le serveur Mod_Security Re-Démarrer et voyez si le comportement s'est arrêté!


0 commentaires

0
votes

On dirait que d'autres personnes ont rencontré le même problème à l'aide de WAMP: Avez-vous traversé chacun des points énumérés dans cet article appartenant au forum officiel:

http://forum.wampserver.com/read.php?2 67660 < / a>


0 commentaires

0
votes

Êtes-vous sûr de ne pas avoir d'inclure / besoin de boucle?

Ce genre de boucle rend PHP manger trop de mémoire et Apache se tue pour l'éviter.

ou peut-être une sorte d'erreur de 404 boucle ... Ce genre de boucle peut arriver si vous avez parfois 404 erreurs. Voici un exemple:

Vous avez une disposition avec une image qui manque, de sorte qu'il déclenche une erreur 404. Pour afficher la page, les erreurs 404 Ajoutent la mise en page autour de la page d'erreur contenant l'image manquante, qui déclenche une autre erreur 404.

espère que cela aide.


0 commentaires