NouveauBlack Friday : 50 % de réduction sur votre premier paiement
Dépannage WordPress

Erreur de serveur interne 500

Le serveur Web a essayé de produire la page, quelque chose s'est mal passé à l'intérieur, et il a retourné un code d'état au lieu d'une raison.

500 Internal Server Error

Réponse rapide

La raison en est dans le journal des erreurs du serveur, pas sur la page. Lisez les dernières lignes avant de changer quoi que ce soit - un 500 causé par un .htaccess mal formé et un 500 causé par un besoin fatal PHP de corrections opposées.

Diagnostic

Les causes les plus probables d’abord.

Parcourez la liste dans l’ordre. Vérifiez chaque cause avant de modifier quoi que ce soit : les correctifs diffèrent et une supposition coûte plus cher qu’une commande.

CauseComment vérifierCorrectif
Un .htaccess mal forméRenommer le fichier et recharger. Si le 500 devient une page de travail ou un 404, .htaccess était la cause.Laissez WordPress écrire un propre en ré-sauvant permalinks. Une directive d'un plugin que le serveur ne supporte pas est la raison habituelle.
Une erreur fatale PHP le gestionnaire ne pouvait pas rapporterLe journal d'erreur PHP a une entrée "Fatal error" chronométrée à votre demande, tandis que le journal d'accès enregistre le 500.Traitez-le comme un fatal : trouvez le fichier nommé, désactivez le plugin ou le thème qui le possède.
Mauvaises autorisations de fichierLes répertoires qui ne sont pas 755 ou les fichiers qui ne sont pas 644, ou tout groupe- ou mondiale-écrit que le gestionnaire refuse d'exécuter.Réinitialisez-les. Une restauration d'une sauvegarde qui n'a pas conservé les modes est la cause habituelle d'un arbre entier qui se trompe à la fois.
Une extension PHP est manquante après un changement de versionLe journal des erreurs nomme une fonction non définie plutôt qu'un problème de syntaxe - un appel à quelque chose que la nouvelle construction PHP ne fournit pas.Installez l'extension ou revenez à la version PHP qui l'avait. Le changement de version PHP est quand cela apparaît.
Le serveur est sorti d'une ressource qu'il ne nomme pasLe 500 est intermittent sous charge et absent lorsque le site est calme.Regardez les limites du processus et la mémoire avant de toucher WordPress. Un 500 intermittent est une histoire de capacité, pas une histoire de code.
Guide

Corriger l’erreur, étape par étape.

Les commandes supposent un accès à WP-CLI et au terminal. Si vous n’en disposez pas, chaque étape explique comment procéder depuis le tableau de bord ou via SFTP.

  1. Lisez le journal des erreurs du serveur d'abord

    Tout le reste de cette page est une supposition jusqu'à ce que vous ayez. L'emplacement varie; ces deux couvre la plupart des piles.

    tail -n 40 /var/log/nginx/error.log
    tail -n 40 /var/log/apache2/error.log
  2. Prenez .htaccess hors de la photo

    Un nom vous indique si les règles de réécriture sont impliquées, sans rien supprimer.

    mv .htaccess .htaccess.off
  3. Si ça l'a réparé, avoir WordPress écrire un nouveau

    Ré-sauvegarder permalinks régénère le bloc WordPress possède et dépose tout ce qui avait accumulé.

    wp rewrite flush --hard
  4. Vérifier les autorisations à travers l'arbre

    Les répertoires exécutables, les fichiers non. Tout ce qui est en écriture par le monde est à la fois un risque 500 et un risque de sécurité.

    find . -type d ! -perm 755 | head
    find . -type f ! -perm 644 | head
  5. Confirmer que PHP est en bonne santé

    Si PHP ne peut pas exécuter un fichier trivial, le problème est sous WordPress entièrement.

    php -v && php -r 'echo "php ok\n";'
Sur MagicWP

Ce que la plateforme prend en charge.

Il n'y a pas de .htaccess à malform - nginx possède les réécritures, et elles sont appliquées à partir de la configuration plutôt que d'un fichier à l'intérieur de la racine web auquel n'importe quel plugin peut s'ajouter. Les versions PHP sont commutées par site avec l'extension qui va avec, de sorte que la version de l'extension manquante de cette erreur ne survit pas au commutateur, et le journal des erreurs est un clic du tableau de bord plutôt qu'un chemin que vous devez deviner.

Questions fréquentes

Questions fréquentes.

Pourquoi la page ne dit pas ce qui s'est mal passé ?
Par conception. A 500 est le code d'état pour "quelque chose a échoué à l'intérieur du serveur", et le détail est délibérément refusé aux visiteurs parce qu'il décrirait votre système de fichiers à des étrangers. Le détail va plutôt au journal des erreurs.
Un 500 est-il différent d'un écran blanc ?
Oui, et la différence compte. Un 500 signifie que le serveur a répondu par un état d'erreur; un écran blanc signifie habituellement qu'il a retourné 200 et un corps vide. Ils pointent à différents journaux.
Tout fonctionne sauf une page. Peut-il s’agir d’une erreur 500 ?
Oui. Un modèle unique ou un seul itinéraire de plugin peut être fatal alors que toutes les autres URL rendent. Affiner par l'URL dans le journal d'accès plutôt que de supposer que le site entier est affecté.
Devrais-je simplement augmenter la limite de mémoire et voir ?
Pas d'abord. Cela corrige exactement une des causes ici et cache les autres en changeant de timing. Lisez la ligne de journal avant de changer une valeur.
Erreurs associées

Si le problème vient d’ailleurs.

Ces erreurs peuvent se présenter de façon similaire dans le navigateur.