http 요청 오류 상태 코드 500의 경우 일반적인 설명은 다음과 같습니다. 서버에 오류가 발생하여 요청을 완료할 수 없음(예: 내부 서버 오류)을 의미하지만 특정 문제를 자세히 분석해야 함을 의미합니다.
PHP 프로그램 구문 오류 발생
시나리오 1: 우리 프로젝트는 알람 모니터링으로 설정되었습니다(웹 사이트의 고정 링크는 10분마다 액세스하도록 예정되어 있습니다). 하루에 두세번씩 메일로 500에러가 떴는데, 수동접속을 해보니 접속이 정상적으로 되더라구요... (추천학습 : PHP프로그래밍 입문부터 숙달까지)
가장 많이 발생하는 에러일텐데요, 그리고 문법 오류도 빠르게 재현할 수 있어 오류 메시지가 노출되는 한 문제는 즉시 해결될 수 있습니다.
로컬이나 테스트 환경이라면 보통 이렇게 처리합니다. 프로그램 입구에서 출력 오류 메시지만 설정하면 됩니다.
//error_reporting设置应该报告的错误,下面表示除了 E_NOTICE,报告其他所有错误 error_reporting(E_ALL ^ E_NOTICE); //输出错误 ini_set('display_errors', 1);
하지만 온라인 환경에서는 사용자가 사용하기 때문에 허용이 불가능합니다. 우리가 너무 벌거벗었거든요. 인쇄 오류가 있으면 어떻게 해야 하나요? 프로그램 항목 파일에서 로그 파일에 오류 출력을 설정할 수 있습니다. 구체적인 코드는 다음과 같습니다.
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); //程序正常执行逻辑......
방금 언급한 시나리오 1의 문제는 위의 방법으로 로그에 출력한 후에 나중에 알게 되었습니다. mysql 연결이 비정상적으로 끊겨서 프로그램이 계속 실행됐던 거에요. (mysql 접속할 땐 정상이었는데, 특정 쿼리 메소드를 호출하면 에러가 나더군요. mysqli_real_escape_string() 메소드를 사용한 곳이었던 걸로 기억합니다. ) 치명적인 오류가 마침내 성공적으로 복구되었습니다.
위 내용은 PHP는 자체 메소드를 호출할 때 오류 500을 보고합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!