1

주제: PHP 5.3 이상 환경에서 call-time pass-by-reference 문제

현재 최신 stable 버전인 1.8.6 사용 시 설치 후 메인 페이지까지는 문제 없이 들어갈 수 있으나 컨트롤 패널/포스트 하기에 들어가려고 하면 500에러(IE의 경우만 그렇고 파이어폭스로 시도 시 아무 것도 표시되지 않음)가 뜹니다.

APM 버전은 apache 2.2.24, php 5.4.15, mysql 5.6.12인 상태에서 겪었습니다.

아파치 에러 로그를 찾아본 결과
[Mon Jun 10 19:58:18 2013] [error] [client 192.168.2.1] PHP Fatal error:  Call-time pass-by-reference has been removed in /var/www/html/library/view/ownerView.php on line 143, referer: http://www.myservlab.com/
라는 로그가 남아서 해당 부분을 찾아봤습니다.

echo "\t\t\n".call_user_func($editor['initfunc'], &$editor)."\t\t\n";

그래서 에러와 관련된 내용을 찾아 본 결과
http://stackoverflow.com/questions/8971 … -available

제가 프로그래밍에 대해 잘 아는 건 아니지만 PHP 5.3부터 argument로 address를 넘길 때 deprecated된 방식을 사용할 경우 경고(라고 하지만 실질적으로 에러)를 발생시키는 것 같습니다. 본문처럼 call의 argument에서 앞의 &를 빼니 일단 정상적으로 사용할 수 있게 됐습니다.(모든 메뉴를 둘러 본 건 아니어서 완벽하게 정상적인진 모르겠습니다.)

이 포럼에서 거의 1년 전에 어떤 분이 동일한 내용과 해결법을 리포팅하셨지만 개발버전 로그를 보니 관련 내용이 없는 것 같아 혹시 아직도 수정되지 않았나 해서 올려봅니다.

mirashi (2013-06-10 20:32:08)에 의해 마지막으로 수정