Ubuntu 14.04 에 PHP 5.3 설치

ubuntu 12.04 서버를 잘 사용하고 있었다가 이번에 14.04로 업데이트 하였다.

잘 쓰던 링크하드가 문제가 발생 하여 PHP5.3 버전을 vhost에 적용해보기로 하였다.

우선 빌드를 위한 환경이 구축되어 있어야 한다.  빌드 환경이 축되어 있다면, 아래의 순서로 진행한다.

1. PHP 5.3빌드를 위해 관련 라이브러리를 설정한다.

sudo apt-get install libxml2-dev libpcre3-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libxpm-dev libfreetype6-dev libmysqlclient-dev postgresql-server-dev-9.1 libt1-dev libgd2-xpm-dev libgmp-dev libsasl2-dev libmhash-dev unixodbc-dev freetds-dev libpspell-dev libsnmp-dev libtidy-dev libxslt1-dev libmcrypt-dev

2. 소스를 다운 받고 설정한다.

wget http://in1.php.net/distributions/php-5.3.28.tar.bz2
tar -xvf php-5.3.28.tar.bz2
cd php-5.3.28

일반적인 ./configure 는 대략 다음과 같다.

sudo ./configure \
–prefix=/usr/share/php53 \
–datadir=/usr/share/php53 \
–mandir=/usr/share/man \
–bindir=/usr/bin/php53 \
–with-libdir=lib64 \
–includedir=/usr/include \
–sysconfdir=/etc/php53/apache2 \
–with-config-file-path=/etc/php53/cli \
–with-config-file-scan-dir=/etc/php53/conf.d \
–localstatedir=/var \
–disable-debug \
–with-regex=php \
–disable-rpath \
–disable-static \
–disable-posix \
–with-pic \
–with-layout=GNU \
–with-pear=/usr/share/php \
–enable-calendar \
–enable-sysvsem \
–enable-sysvshm \
–enable-sysvmsg \
–enable-bcmath \
–with-bz2 \
–enable-ctype \
–without-gdbm \
–with-iconv \
–enable-exif \
–enable-ftp \
–enable-cli \
–with-gettext \
–enable-mbstring \
–with-pcre-regex=/usr \
–enable-shmop \
–enable-sockets \
–enable-wddx \
–with-libxml-dir=/usr \
–with-zlib \
–with-kerberos=/usr \
–with-openssl=/usr \
–enable-soap \
–enable-zip \
–with-mhash \
–with-exec-dir=/usr/lib/php5/libexec \
–without-mm \
–with-curl=shared,/usr \
–with-zlib-dir=/usr \
–with-gd=shared,/usr \
–enable-gd-native-ttf \
–with-jpeg-dir=shared,/usr \
–with-png-dir=shared,/usr \
–with-ttf=shared,/usr \
–with-t1lib=shared,/usr \
–with-ldap=shared,/usr \
–with-mysql=shared,/usr \
–with-mysqli=shared,/usr/bin/mysql_config \
–with-pspell=shared,/usr \
–with-unixODBC=shared,/usr \
–with-xsl=shared,/usr \
–with-snmp=shared,/usr \
–with-sqlite=shared,/usr \
–with-tidy=shared,/usr \
–with-xmlrpc=shared \
–enable-pdo=shared \
–without-pdo-dblib \
–with-pdo-mysql=shared,/usr \
–with-pdo-pgsql=shared,/usr \
–with-pdo-odbc=shared,unixODBC,/usr \
–with-pdo-dblib=shared,/usr \
–enable-force-cgi-redirect  –enable-fastcgi \
–with-libdir=/lib/i386-linux-gnu \
–with-pdo-sqlite=shared \
–with-sqlite=shared \
–enable-ipv6 \
–with-mcrypt \
–with-imap-ssl

–with-libdir=/lib/i386-linux-gnu 와 같은 옵션의 디렉토리는 자신의 서버와 맞게 바꾼다.
오류가 나는 사항이 있다면 옵션을 알맞게 조정해 준다.

추가 오류사항은 원문에 오류 메세지를 참고 해본다.

3. 빌드를 수행한다.
sudo make
sudo make install

오류가 없이 빌드가 되었다면 php 5.3 버전은 설치가 되었다.

이제 빌드된 extension 파일들을 extensions 디렉토리에 넣어준다.

일반적이라면 /usr/local/lib/php/extensions/no-debug-non-zts-20090626, phpinfo를 이용하여 정확히 확인해 본다.

sudo cp modules/*.so /usr/local/lib/php/extensions/no-debug-non-zts-20090626

4. Apache를 위한 Conf파일을 설정한다.

sudo mkdir /etc/php53
sudo mkdir /etc/php53/apache2
sudo ln -s /etc/php5/conf.d /etc/php53
sudo ln -s /etc/php5/cli /etc/php53
sudo cp php.ini-development /etc/php53/apache2/php.ini

5. fast CGI를 이용하여 PHP 5.3을 vhost와 연결한다.

Apache에 Fast CGI 를 설치한다.

sudo apt-get install libapache2-mod-fastcgi
sudo a2enmod cgi fastcgi actions
sudo service apache2 restart

/usr/lib/cgi-bin 디렉토리에 php53-cgi 파일을 아래의 내용으로 생성한다.

#!/bin/sh PHPRC="/etc/php53/apache2/"
 export PHPRC PHP_FCGI_CHILDREN=4
 export PHP_FCGI_CHILDREN
 PHP_FCGI_MAX_REQUESTS=5000
 export PHP_FCGI_MAX_REQUESTS
 exec /usr/bin/php53/php-cgi

실행 파일의 권한을 준다.

sudo chmod +x /usr/lib/cgi-bin/php53-cgi

Include에 사용될 /etc/apache2/php53.conf 파일을 작성한다.

Include file for virtual hosts that need to run PHP 5.3
 <FilesMatch "\.php">
 SetHandler application/x-httpd-php5
 </FilesMatch>
 ScriptAlias /php52-cgi /usr/lib/cgi-bin/php53-cgi
 Action application/x-httpd-php5 /php53-cgi
 AddHandler application/x-httpd-php5 .php

PHP 5.3버전을 사용할 vhost의 conf파일에 아래의 include를 추가한다. (중요)

Include php53.conf

Apache를 재시작 해준면 완료된다.

sudo service apache2 reload

참고 원문 : http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204