PHP 5.5로 업그레이드 해보자(CentOS 6.4 / yum)

이 포스트는 CentOS 6.4를 기준으로 쓰여졌습니다.

PHP 5.5가 발표된지도 반년이 훌쩍 넘어가는 가운데 그동안 5.4 버전을 사용해 오다가 별안간 5.5로 업그레이드를 해보고 싶어졌습니다(그리고 그 장대한 삽질의 과정은 과감히 생략합니다…)

과정은 크게 기존 php를 삭제하고 5.5 버전을 새로 설치하는 절차로 진행되겠습니다.

1. 현재 설치되어 있는 php 패키지를 확인합니다.

yum list installed | grep php

저의 경우에는 다음과 같이 출력되었습니다.

php.x86_64            5.4.23-29.el6.art @atomic   
php-bcmath.x86_64     5.4.23-29.el6.art @atomic
php-cli.x86_64        5.4.23-29.el6.art @atomic
php-common.x86_64     5.4.23-29.el6.art @atomic
php-devel.x86_64      5.4.23-29.el6.art @atomic
php-gd.x86_64         5.4.23-29.el6.art @atomic
php-mbstring.x86_64   5.4.23-29.el6.art @atomic
php-mcrypt.x86_64     5.4.23-29.el6.art @atomic
php-mysqlnd.x86_64    5.4.23-29.el6.art @atomic
php-pdo.x86_64        5.4.23-29.el6.art @atomic
php-pear.noarch       1:1.9.4-4.el6     @base
php-soap.x86_64       5.4.23-29.el6.art @atomic

 
2. 설치된 패키지들을 삭제합니다. 자신의 목록을 메모장 등 붙여넣기해서 편집하시는 것을 추천합니다.

yum remove php.x86_64 php.x86_64 php-bcmatch.x86_64 php-cli.x86_64 php-common.x86_64 php-devel.x86_64 php-gd.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysqlnd.x86_64 php-pdo.x86_64 php-pear.noarch php-soap.x86_64

 
3. php5.5를 설치합니다. 위 패키지 목록의 php부분을 php55w로 고치시면 됩니다.

yum install php55w.x86_64 php55w.x86_64 php55w-bcmatch.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-devel.x86_64 php55w-gd.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysqlnd.x86_64 php55w-pdo.x86_64 php55w-pear.noarch php55w-soap.x86_64

 
4. 설정파일을 복구합니다. 기존의 php를 삭제하는 과정에서 나오는 메시지를 유심히 보셨다면 알 수 있습니다만, httpd.conf 파일과 php.ini 파일이 각각 httpd.conf.rpmsave, php.ini.rpmsave로 변경되어 저장됩니다. 설정파일을 다시 손보셔도 되고 .rpmsave로 저장된 기존 설정 파일을 사용하셔도 됩니다.
 
5. 서버를 재시작 합니다.

service httpd restart

 
제대로 업그레이드 되어 있는지 확인하려면 php -v로 확인해 보시면 됩니다.

PHP 5.5.7 (cli) (built: Dec 13 2013 15:59:26) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies

 
5.5.7 버전으로 성공적으로 업그레이드 되었습니다.
 
6. 혹시 자신의 서버에 MongoDB가 설치되어 있다면(정확히는 php 드라이버) 서버를 재시작하는 과정에서 혹은 php -v에서 버전을 확인하는 과정에서 에러가 발생합니다.

PHP Warning:  PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20121212
These options need to match
 in Unknown on line 0

 
설치된 MongoDB PHP 드라이버의 버전이 맞지 않아서 발생하는 문제입니다. 드라이버를 재설치 해줍니다.

sudo pecl install mongo

 
설치가 완료된 후 service mongod restart로 DB를 재시작 해주시면 됩니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>