Zend OPcache must be loaded before Zend Debugger

|
반응형

이클립스 eclipse for php developer 를 설치하고

디버거를 zend debugger로 선택하면

에러가 뜬다.


일단 help-install new software에서 zend debugger를 설치하고


zend.com에서 리눅스용 zend debugger(ZendDebugger-linux-x86_64.tar.gz)파일을 다운로드하고


파일을 풀어서 나오는 dummy.php 파일은 사용하려는 사이트의 루트에 복사해주고


ZendDebugger.so파일은 /usr/lib/php/20121212 밑에 복사해주었다.


그리고


/etc/php5/apache2/php.ini 파일을 수정


================================

zend_extension=/usr/lib/php5/20121212/ZendDebugger.so


[zend_debugger]

zend_debugger.allow_hosts = 127.0.0.1

zend_debugger.expose_remotely = always

================================

를 추가해주었다.


그리고

phpinfo();

를 불러서 살펴보면 zend debugger 항목이 보인다.


그런데!


디버거만 쓰면 안되고 당연하게도 zend guard loader도 써야한다.


zend.com에서 zend-loader-php5.5-linux-x86_64.tar.gz를 다운로드 받았다.


압축을 풀어보면 

ZendGuardLoader.so 와 opcache.so 가 나온다.


그래서 이렇게 다시 php.ini파일을 수정.


; Enable Zend Debugger extension module

zend_extension=/usr/lib/php5/20121212/opcache.so

zend_extension=/usr/lib/php5/20121212/ZendGuardLoader.so

zend_extension=/usr/lib/php5/20121212/ZendDebugger.so



[zend_debugger]

zend_debugger.allow_hosts = 127.0.0.1

zend_debugger.expose_remotely = always


[zend_loader]


zend_loader.enable=1

zend_loader.disable_licensing=0

zend_loader.obfuscation_level_support=3


이렇게 해주었다.


그런데?


sudo service apache2 restart 를 해주면


에러가 난다!


왜지???


그래서 /var/log/apache2/error.log를 살펴본다.


Zend OPcache must be loaded before Zend Debugger


이렇게 나온다.


도무지 알 수가 없는데


이것을 해결하지않고 아파치가 실행이 되어도 

phpinfo();에서 보면


디버거거 DIABLED되었다고 나온다.


어디에선가 opcache가 먼저 설정된 부분이 있다.


찾아본다.


/etc/php5/apache2/conf.d 폴더로 들어가보면


05-opcache.ini -> ../../mods-available/opcache.ini


링그가 걸려있는 05-opcache.ini파일이 의심스러움

에디터로 열어서 보니 이것이 맞다.

;zend_extension=opcache.so


코멘트 처리 해주었다.

그리고 sudo service apache2 restart

그렇게 하고서 phpinfo(); 를 보니




모든 것이 제대로 설정되었다.


이클립스에서 디버거도 제대로 작동되었다.


php5의 mod enable 부분은 좀 더 깔끔하게 처리하는 방법이 있을 듯. 알아봐야할 부분.



반응형
And