print?
1.
Deprecated: Function eregi() is deprecated in /var/www/phpThumb_1.7.9/phpthumb.functions.php on line 652
Deprecated는 향후 지원을 하지 않을 계획이므로 권장하지 않는다는 말이다.
위 문장을 해석하면 eregi() 함수는 향후 지원하지 않을 것이므로 쓰지 말라는 거다. 즉, 경고 메시지.(실제로 PHP6부터는 함수가 없어진다고 한다.) PHP 5.3이면 위 메시지가 나온다고 한다. 그 이하 버전에서는 등장하지 않을 듯.
정리하면? 경고 메시지이지 에러가 아니고, 정상작동한다.
그럼, 두 가지 방법이 있겠다.
(1)저 함수를 다 고친다.
(2)경고 메시지를 출력하지 않게 만든다.
남이 만든 라이브러리를 일일이 수정할 자신은 없으니(물론 자동으로 수정해 주는 프로그램도 있다고 한다.) 경고 메시지만 출력하지 말자.
1.
error_reporting
(E_ALL ^E_DEPRECATED);
위 코드를 실행 전에 넣어 주면 된다고 한다.(참고한 글)
어 쒸... 이것도 귀찮다.
php.ini를 고쳐 보자.
대책은 여기서 찾을 수 있었다. 아래처럼 고치란다. 시키는대로 해 보자.
1.
error_reporting = E_ALL & ~E_DEPRECATED
위처럼 쓰면 에러 보고를 전부 하되, DEPRECATED 의 경우만 하지 말라는 뜻이 된다. 자세한 내용은 PHP 사이트에서 보면 된다.
위처럼 했는데 안 될 경우 E_ALL 대신 E_ERROR을 써 보자. 그럼 에러만 출력하라고 하는 거니까 말이다.
당연히 아파치를 재시작해 줘야 한다. 우분투 사용자라면 터미널에서 아래 명령을 친다. 영 모르겠으면 걍 컴터를 재부팅해라.
1.
sudo /etc/init.d/apache2 restart
그러니까 경고 메시지가 말끔히 사라졌다.
다음...
phpThumb.php 파일에서 모든 에러 메시지를 출력하도록 설정해 놓은 것을 없애야 한다.
파일에 함수로 설정하는 에러 메시지 핸들링은 서버 설정보다 우선하기 때문에 서버 설정이 무력화된다.
phpThumb.php에서 Deprecated를 뿜으면 header가 text로 보내져 버리기 때문에 image로 인식이 안 되고, phpThumb가 제대로 작동을 안 한다.
따라서 아래 코드를 주석처리해 준다.
1.
error_reporting
(E_ALL);
2.
ini_set
(
'display_errors'
,
'1'
);