Maison  >  Article  >  développement back-end  >  Rapport d'accès au programme PHP 500, solution de gestion des erreurs

Rapport d'accès au programme PHP 500, solution de gestion des erreurs

慕斯
慕斯avant
2021-06-28 11:24:524170parcourir

Nous avons tellement appris sur PHP, mais je ne sais pas si vous maîtrisez parfaitement les erreurs de syntaxe de Programmes PHP. Sinon, suivez cet article pour continuer à apprendre

Erreur de syntaxe du programme PHP causée par

Scénario 1 : Notre projet est mis en place avec une surveillance des alarmes (accès programmé à un lien fixe sur le site toutes les 10 minutes). Il fut un temps où nous recevions 500 emails d'erreur deux ou trois fois par jour, mais j'y accédais à nouveau manuellement. , L'accès est normal...

Cela devrait être l'erreur la plus courante, et les erreurs grammaticales peuvent également réapparaître rapidement Tant que le message d'erreur est exposé, le problème peut être résolu immédiatement.
S'il s'agit d'un environnement local ou de test, c'est généralement ainsi que nous le gérons. Il suffit de définir le message d'erreur de sortie dans l'entrée du programme :

//error_reporting设置应该报告的错误,下面表示除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);
//输出错误
ini_set('display_errors', 1);

Mais dans un environnement en ligne, car tous les utilisateurs l'utilisent. c'est impossible. Que devons-nous faire si nous sommes autorisés à commettre des erreurs d'impression aussi flagrantes ? Vous pouvez définir la sortie d'erreur dans le fichier journal dans le fichier d'entrée du programme. Le code spécifique est le suivant :

error_reporting(E_ALL ^ E_NOTICE);
//禁止把错误输出到页面
ini_set('display_errors', 0);
//设置错误信息输出到文件
ini_set('log_errors', 1);

//指定错误日志文件名
$error_dir = '/logs/err/';
$error_file = $error_dir . date('Ymd').'.log';
//目录不存在就创建
if (!is_dir($error_dir)){
    mkdir($error_dir, 0777, true);
}
//文件不存在就创建之
if(!file_exists($error_file)){
    $fp = fopen($error_file, 'w+');
    if($fp){
        fclose($fp);
    }
}

//设置错误输出文件
ini_set("error_log", $error_file);

//程序正常执行逻辑......

Le problème dans le scénario 1 que nous venons de mentionner a été découvert plus tard lorsque nous l'avons affiché dans le journal dans le même cas. comme ci-dessus. C'était parce que mysql La connexion était anormalement déconnectée et le programme continuait à s'exécuter (c'était normal lors de la connexion à mysql, mais une erreur a été signalée lors de l'appel de la méthode de requête spécifique, rappelez-vous qu'elle semblait être l'endroit où se trouvait la méthode mysqli_real_escape_string() a été utilisé), ce qui a entraîné une erreur fatale, qui a finalement été réparée avec succès.

Le disque est plein, provoquant

Scénario 2 : Une fois, un collègue a déclaré que la photo ne pouvait pas être téléchargée et a continué à signaler erreur 500. Cela fonctionnait bien avant, mais je n'ai pas pu trouver quel était le problème. Parce que j'étais responsable du développement de ce domaine à l'époque, je suis donc venu me voir sans problème. étaient accessibles normalement. J'ai supprimé tout le code de cette page. J'ai toujours eu une erreur lors du nouveau téléchargement. Après une longue recherche, j'ai finalement découvert que le disque était plein o(╥﹏╥)o...

L'erreur 500 était causée par un espace disque insuffisant et un espace insuffisant pour lire et écrire des données. Elle est rare et difficile à détecter à temps. Habituellement, lorsque vous rencontrez une erreur 500, la première chose qui vous vient à l'esprit est une erreur de programme. En fait, cela peut également être dû à un espace disque insuffisant. Si vous rencontrez des problèmes avec le programme, vous pouvez vérifier si cela est dû. à un espace disque insuffisant ~
df -h Vérifiez l'utilisation de l'espace disque
Rapport daccès au programme PHP 500, solution de gestion des erreurs

Pour une erreur de requête http le code d'état est 500, l'explication habituelle est : Indique que le serveur a rencontré une erreur et n'a pas pu terminer la demande (c'est-à-dire une erreur interne du serveur), mais le problème spécifique doit être analysé en détail

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer