PHP 7.0 호환성 문제시, 이전 버전인 5.6 으로 빠르게 전환하기

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 에서 정상적으로 돌아가도록 소스 코드를 보완하면 더 좋겠죠? 🙂