PHP-FPM을 이용하여 한서버 안에 여러 PHP버전을 설치할 수 있으며, 동시에 사용 가능합니다.
php.ini 파일은 각 버전마다 다르게 설정해주어야 합니다.
※ 설치환경 : CentOS 7.6
※ Apache : 2.4 Mysql : 5.6 PHP : 5.6 7.0 7.2
1. PHP 설치시에는 Configure 옵션 설정
하이라이트로 된 부분은 컴파일 옵션 시에 추가해야 하며, 빨간색 부분은 각 설치환경마다 다르게 설정해주어야 합니다.
# ./configure \
--prefix=/usr/local/php56 \
--enable-fpm \
--with-fpm-user=nobody \
--with-fpm-group=nobody \
--with-config-file-path=/usr/local/php56/etc \
--enable-sigchild \
--with-libxml-dir \
--with-openssl \
--with-zlib \
--with-mysqli \
--with-zlib-dir\
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-dba \
--with-gdbm \
--enable-exif \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--with-gettext \
--with-imap=/usr/local/imap-2007f \
--with-imap-ssl \
--with-kerberos \
--enable-mbstring \
--with-mhash \
--with-mcrypt \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-opcache \
--enable-zip \
--with-pdo-mysql \
--with-snmp \
--enable-intl
# make && make install
# cp -arp php.ini-development /usr/local/php56/etc/php.ini
# cp -arp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf
# cp -arp sapi/fpm/init.d.php-fpm /etc/init.d/php56-fpm
# chmod 700 /etc/init.d/php56-fpm
# chkconfig --add php56-fpm
# chkconfig php56-fpm on
php 7.0 이상의 경우 아래 설정도 추가해주어야 합니다.
# cp -arp /usr/local/php70/etc/php-fpm.d/www.conf.default \
/usr/local/php70/etc/php-fpm.d/www.conf
2. 설정파일 수정
PHP 5.6의 경우는 php-fpm.conf파일을 수정합니다.
PHP 7.0이상 버전의 경우 php-fpm.d/www.conf 파일을 수정합니다.
PHP 5.6은 9000, 7.0은 9001, 7.2는 9002로 지정하였습니다.
PHP 5.6
# vi /usr/local/php56/etc/php-fpm.conf
listen = 127.0.0.1:9000
PHP 7.0
# vi /usr/local/php70/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9001
PHP 7.2
# vi /usr/local/php72/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9002
3. PHP-FPM 시작 후 동작 확인
# service php56-fpm start
Starting php-fpm done
# service php70-fpm start
Starting php-fpm done
# service php72-fpm start
Starting php-fpm done
# netstat -nltp | grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 15306/php-fpm: mast
tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 15347/php-fpm: mast
tcp 0 0 127.0.0.1:9002 0.0.0.0:* LISTEN 15361/php-fpm: mast
4. 가상호스트 설정 후, index.php 확인
test.xyz 라는 도메인을 이용하여 테스트 진행하였습니다.
가상호스트 설정으로 아래와 같이 설정하였으며, proxy 모듈을 추가해주어야 합니다.
<VirtualHost *:80>
DocumentRoot "/home/www/php56/"
ServerName php56.test.xyz
<IfModule proxy_fcgi_module>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/www/php56/$1
</IfModule>
ErrorLog "logs/php56-test.xyz-error_log"
CustomLog "logs/php56-test.xyz-access_log" common
</VirtualHost>
URL로 들어가서 버전별로 확인합니다.
'LINUX > WEB' 카테고리의 다른 글
SSL 에러 (unable to load certificate) (0) | 2021.07.12 |
---|---|
CentOS8 - Apache + Mysql + PHP 소스설치 (0) | 2020.01.08 |
WAS WEB 분리 (1) | 2019.06.13 |
Cronolog 설치 (0) | 2019.06.03 |
awstats 설치 및 설정 (0) | 2019.06.03 |