XE 의 PHP 7.0 호환성 문제
며칠 전 XE 1.8.11 사이트가 포함된 서버를 신규 서버로 이전했습니다.
신규 서버는 https://github.com/php79/stack 으로 N(nginx)PM 을 자동 설치했습니다.
일부 구버전 사이트는 PHP 5.3, XE 사이트에는 PHP 7.0 을 적용했습니다.
잘 돌아가나 했더니, 오늘 파일 첨부시 https://www.xetown.com/qna/147895 문제가 발생한다고 연락이 오네요.
불금 저녁인데 말이죠. ㅜㅜ
장애 대응 방향
불금이니깐, 빠른 장애 해결이 필요합니다.
소스 디버깅 할 것 없이, XE 사이트만 PHP 7.0 에서 5.6 으로 전환을 결정합니다.
php79 stack 에서 PHP 5.6 추가 설치
[code lang=text]
cd /root/stack
vi stack.conf
PHP56=1
./install.sh
[/code]
기존 PHP 7.0 으로 운영중인 사이트들은 그대로 유지되며, PHP 5.6 만 추가 설치됩니다.
XE 사이트의 nginx 설정에서 사용할 PHP 버전 변경
[code lang=text]
vi /etc/nginx/conf.d/xe-site.conf
server {
#set $APP_BACKEND php70_backend;
set $APP_BACKEND php56_backend;
service nginx reload
[/code]
이제 xe-site.conf 에 해당하는 사이트만 PHP 5.6 으로 전환되었습니다.
결과 확인
다시 XE 사이트에 접속하여 새로고침하고, 파일 첨부해보니 잘 됩니다. 🙂
불금을 위한 빠른 해결책!
php79 stack 은 이렇게 다양한 PHP 버전을 지원하며, 이미 구축된 사이트의 PHP 버전을 빠르게 전환할 수 있습니다.
서버에서 PHP 재설치한다고 야근은 그만!!!
물론 장기적으로는 PHP 7.0 에서 정상적으로 돌아가도록 소스 코드를 보완하면 더 좋겠죠? 🙂