[PHP][설정] PHP 에러 쉽게 출력하기 (PHP 디버깅, Internal error 500)
2024. 5. 25. 15:24PHP 500 Internal Server Error는 서버 측에서 발생하는 에러로, PHP 스크립트가 제대로 실행되지 않을 때 발생합니다. 이 에러를 디버깅하기 위한 몇 가지 방법을 소개합니다.
가장 첫번째 방법인, PHP 에러 표시 설정부터 적용하길 추천드립니다.
1. PHP 에러 표시 설정
디버깅을 위해 개발 환경에서만 PHP 에러를 브라우저에 표시하도록 설정할 수 있습니다.
- php.ini 설정:
display_errors = On
display_startup_errors = On
error_reporting = E_ALL
- 또는 스크립트 내부에서 설정:
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
2. PHP 에러 로깅 설정
PHP 에러를 로그로 남기면 문제를 파악하는 데 도움이 됩니다. php.ini 파일을 수정하여 에러 로깅을 활성화할 수 있습니다.
- php.ini 설정:
display_errors = Off
log_errors = On
error_log = /path/to/your/php-error.log
// 만약 php-error.log로 할 시 아래의 경로에 로그가 저장됩니다.
// e.g) C:\Bitnami\wampstack-8.0.11-0\apache2\htdocs\test\php_errors.log
error_log = php-error.log
- error_log 경로는 실제로 로그 파일을 저장할 위치로 지정합니다. 예를 들어, /var/log/php-error.log와 같이 설정할 수 있습니다.
3. .htaccess 파일 확인
.htaccess 파일에 잘못된 설정이 있을 경우 500 에러가 발생할 수 있습니다. .htaccess 파일을 확인하고, 의심되는 설정이 있으면 주석 처리하거나 제거해보세요.
4. 권한 문제 확인
PHP 파일이나 디렉토리의 권한이 올바르게 설정되어 있는지 확인합니다. 일반적으로 웹 서버에서 실행되는 PHP 파일의 권한은 644, 디렉토리는 755로 설정합니다.
- 파일 권한 설정
chmod 644 /path/to/your/php-file.php
chmod 755 /path/to/your/directory
5. Apache/Nginx 에러 로그 확인
Apache나 Nginx 웹 서버의 에러 로그를 확인하면 500 에러의 원인을 파악하는 데 도움이 됩니다.
- Apache 에러 로그:
tail -f /var/log/apache2/error.log
- Nginx 에러 로그:
tail -f /var/log/nginx/error.log
6. 코드 디버깅
PHP 코드 자체에서 문제가 발생할 수 있습니다. 주요 부분에 var_dump(), print_r(), echo 등을 사용하여 변수를 출력하고, die()를 사용하여 특정 지점에서 코드 실행을 중지하여 문제를 추적할 수 있습니다.
echo 'Checkpoint 1';
var_dump($variable);
die('Stopped execution');
7. 데이터베이스 연결 문제
데이터베이스 연결 문제로 인해 500 에러가 발생할 수 있습니다. 데이터베이스 연결 설정을 확인하고, 올바르게 연결되는지 확인하세요.
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit();
}
이 방법들을 통해 PHP 500 Internal Server Error를 디버깅할 수 있습니다. 에러의 원인을 정확히 파악한 후, 적절한 조치를 취하여 문제를 해결하세요.
'PHP > 설정' 카테고리의 다른 글
[PHP][설정] PHP 설정하기 및 Bitnami 개발 시 경로 (0) | 2024.05.25 |
---|