Chapitre 14 · 14.6
Erreurs après une mise à niveau de PHP et trouver le journal des erreurs
Vous avez augmenté la version de PHP et maintenant votre site web affiche une page blanche, montre un message d'erreur, ou une partie ne fonctionne plus. C'est presque toujours à cause d'une extension, d'un thème ou d'un code personnalisé qui n'est pas compatible avec la nouvelle version. Pas de panique : vous pouvez rétablir l'ancienne version en une minute, puis chercher tranquillement ce qui ne va pas.
Étape 1 : rétablissez l'ancienne version
Allez dans Select PHP version, choisissez de nouveau la version que vous aviez auparavant et cliquez sur Apply (voir Choisir la version de PHP (Select PHP version)). Votre site web fonctionne alors immédiatement de nouveau comme avant. Si vous avez modifié des extensions ou des options pour la nouvelle version, elles restent conservées pour un prochain essai.
Étape 2 : recherchez le message d'erreur dans le journal des erreurs
PHP écrit les erreurs dans le journal des erreurs de votre domaine. On y trouve exactement quel fichier et quelle ligne pose problème.
- Dans DirectAdmin, cliquez sous Système et Fichiers sur Résumé du site & journaux.
- Cliquez, au niveau de votre domaine, sur Journal des erreurs.
- Regardez les dernières lignes, en bas. Recherchez des lignes avec PHP Fatal error, PHP Parse error ou PHP Warning (1).

Vous trouverez davantage d'informations sur les journaux dans Résumé du site & journaux : le journal des erreurs et le journal d'accès.
Étape 3 : comprenez le message
Le message contient le chemin du fichier. Cela vous permet généralement de voir quelle extension ou quel thème est responsable. Quelques exemples :
| Vous voyez dans le message | Signification |
|---|---|
| .../wp-content/plugins/nom-de-l-extension/... | Cette extension ne fonctionne pas avec la nouvelle version. Mettez-la à jour, ou cherchez une alternative si elle n'est plus maintenue. |
| .../wp-content/themes/nom-du-theme/... | Votre thème est trop ancien. Mettez-le à jour ou demandez une mise à jour à son auteur. |
| Call to undefined function mysql_connect() | Code très ancien qui utilise encore des fonctions d'avant PHP 7. Il doit être réécrit. |
| Call to undefined function avec un autre nom de fonction | Il manque souvent une extension. Vérifiez quelle extension correspond à cette fonction et activez-la (voir Activer et désactiver des extensions PHP). |
| Allowed memory size of ... bytes exhausted | Le script manque de mémoire. Augmentez memory_limit (voir Options PHP : upload_max_filesize, memory_limit et max_execution_time). |
| Maximum execution time of ... seconds exceeded | Le script a mis trop de temps à s'exécuter. Augmentez max_execution_time, ou cherchez pourquoi il est si lent. |
Étape 4 : mettez à jour et réessayez
- Effectuez une sauvegarde (voir Sauvegarde et restauration : créer soi-même une sauvegarde dans DirectAdmin).
- Mettez à jour WordPress (ou votre autre logiciel), votre thème et toutes vos extensions, pendant que l'ancienne version de PHP est encore active.
- Supprimez les extensions que vous n'utilisez pas.
- Réactivez la nouvelle version de PHP et testez de nouveau votre site web. Consultez aussi de nouveau le journal des erreurs.
Astuce : Vous souhaitez d'abord tester sans que vos visiteurs en subissent les conséquences ? Créez avec Installatron une copie de votre site sur un sous-domaine (voir Cloner et créer un environnement de test (staging)) et faites fonctionner uniquement ce dossier avec la nouvelle version via .htaccess (voir Paramètres PHP par dossier et via .htaccess).
Afficher temporairement les erreurs sur la page
Vous ne voyez qu'un écran blanc et le journal des erreurs ne contient rien d'utile ? Vous pouvez alors afficher temporairement les erreurs directement sur la page. Dans Select PHP version, sous l'onglet Options, cochez la case display_errors. Ouvrez de nouveau la page : vous voyez maintenant le message d'erreur. Désactivez immédiatement display_errors après coup, car un tel message peut révéler des informations sur votre site web à n'importe qui.
Si vous utilisez WordPress, vous pouvez aussi utiliser ces lignes dans wp-config.php, au-dessus de la ligne That's all, stop editing! : define('WP_DEBUG', true); et define('WP_DEBUG_LOG', true);. WordPress écrit alors les erreurs dans wp-content/debug.log. Retirez-les ensuite, ou remettez-les sur false.
Vous préférez le faire résoudre ?
Vous n'y arrivez pas, ou votre site web n'a pas été mis à jour depuis des années ? Avec la mise à niveau PHP, nous rendons votre site web compatible avec une version actuelle de PHP, pour un prix fixe. Si cela ne fonctionne pas, vous êtes remboursé.
