Apache2 - Erreur Interne du Serveur 500

j'utilise VPS de Linux CentOs 6 de 4 GB RAM, 10 Disque dur GB et 2 Processeur virtuel Intel (R) Xeon (R) CPU L5640 @ 2,27 GHz. Comme mon hôte dit, chaque processeur virtuel devrait être au moins 0,5 processeur physique.

À une certaine heure de la journée, ceux qui ont plus de trafic essaient d'avoir accès à mon script PHP, je reçois périodiquement un message «500 Internal server error».

J'active la journalisation du débogage de apache, ainsi que journal PHP par E_ALL, Mais je ne peux pas trouver un lien avec une erreur 500 ni dans un journal (J'ai vérifié les bons magazines!).

Je n'ai pas de fichier .htaccess Dans le scénario du chemin. Il est étrange que l'erreur commence à partir de la première ligne php dans le script (précédent html Affiche correctement, mais dans la première ligne php Le script envoie une erreur 500).

Le chargement du processeur est toujours bon (Max. 0,15 0,08 0,01), et Ram est proche de 95%, mais elle est venue au total 2 fois par mois avec 2-5 MB.

Apache travailler avec prefork Avec les significations suivantes:

<ifmodule prefork.c="">
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 280
MaxClients 280
MaxRequestsPerChild 4000
</ifmodule>

Tout fonctionne correctement et je ne reçois aucune erreur de temps calme, mais je commence à obtenir des erreurs lors de l'augmentation du trafic (6-9000 Visites par heure).

Puis-je résoudre la tâche d'accroître les ressources? (Je peux augmenter la bélier à 16 Gb).

Cela peut dépendre de la réussite MaxClients (mais apache Doit l'enregistrer dans le magazine, non?)?

Si j'augmente la quantité de RAM à 6 ou 8 Gb, je devrai calculer la valeur MaxClients avec ça?

MaxClients = Total RAM dedicated to the web server / Max child process size

La taille de la filiale maximale est à propos de 20 MB.

Et comment pourrait-il y avoir un problème?

Merci d'avance

Voici la section php.ini Sur les erreurs d'enregistrement

error_reporting = E_ALL | E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
error_log = /var/log/php_errors.log

Tout ce qui n'est pas mentionné est commenté.
Invité:

Babette

Confirmation de:

Le premier port d'appel lors de la détection 500 Erreurs B. PHP - Ceci est une vérification du journal des erreurs PHP; Si un apache ne signale pas une erreur 500, Qui est causé PHP.

Pour vérifier si vous avez atteint des restrictions sur les ressources, allumez et voyez apache
http://httpd.apache.org/docs/2 ... .html
.

Christine

Confirmation de:

C'est la cause du problème:

Max Requests Per Child: 4000

+ Changement

MaxRequestsPerChild

Pour une moins d'importance, essayez de commencer avec 70, Et toutes les erreurs de serveur interne intermittent 500 disparaître.

Pour répondre aux questions, connectez-vous ou registre