티스토리 뷰

728x90
반응형

500 Internal Server Error

Log

안드로이드 회원관리 서비스를 구현 중, php 예제를 가져온 login.php 에서 해당 에러 발생.

원인

서버 설정이 잘 못 되었거나, php 스크립트에 문제가 있어 생기는 error

확인사항

  1. php 파일에 UTF-8 bom 헤더가 기록되어 있으면 지워보고, 불러와 보고 안되면 원상복귀 시킨다.

  2. php.ini 파일에 display_error 설정이 on 으로 되어있나 확인. on 으로 되어있어야 php 스크립트에 무슨 오류가 있는지 판별된다.

  3. 공유 웹 호스팅이라 php.ini 파일을 고쳐줄 수 없으면 php 스크립트에 아래 라인을 추가

     @ini_set('display_error', 'On');
     @error_reportin(E_ALL);

    *config 다음에 명시해 주어야 에러 내용이 크롬에도 표시가 된다.

3번 까지 진행해서 php 스크립트를 브라우저로 불러오면, 스크립트 문제일 경우, php 엔진이 에러 메세지를 보여준다.

해결

에러 내용을 확인해 보니 Notice : Undefined index 였다.

초기화 되지 않은 변수를 사용했을 때 발생하는 에러라고 한다.

로직에는 큰 문제가 없으니 php.ini 의 error_reporting 에 & ~E_NOTICE 를 추가해주면 된다고 한다.

내 경우에는 카페24에 php 파일을 올린 상태라서 구글링을 더 해보니,

웹 호스팅 업체에서는 PEAR 패키지와 PEAR include_path 설정을 생략하는 경우가 있는 것을 깜빡하고

내 스크립트에 해당 코드를 추가해 주지 않아서 크롬에 빈 페이지가 뜨는 현상이 생긴다고 한다.

결국 아래 라인들을 추가해 주니 정상 작동을 확인했다.

 @ini_set('display_error', 'On');
 @ini_get('include_path');
 @error_reporting(E_ALL^E_WARNING^E_NOTICE);

@ 은 해당 함수가 실행될 때 표시되는 메세지를 끈다는 뜻이다.


반응형

'프로그래밍 > PHP' 카테고리의 다른 글

[PHP] php, 웹 서버에 이미지 업로드  (0) 2018.01.21
[PHP] PHP 기본 정리  (0) 2017.09.30
[PHP.Tip] mysqli_prepare  (0) 2017.09.28
공지사항
최근에 올라온 글