一、创建两个目录
# mkdir /usr/local/php56
# mkdir /usr/local/php72
二、安装依赖
# yum -y install gcc gcc-c++ make kernel-headers glibc-headers zlib-devel openssl openssl-devel pcre-devel gd-devel libxml2-devel curl-devel bzip2-devel.x86_64 gmp-devel icu libicu libicu-devel postgresql-devel libxslt-devel
三、下载源码包
# cd /usr/local/src
# wget http://cn2.php.net/distributions/php-7.2.21.tar.gz
# wget http://cn2.php.net/distributions/php-5.6.37.tar.gz
# tar -xzxvf php-7.2.9.tar.gz
# tar -xzxvf php-5.6.37.tar.gz
三、安装PHP7.2
# cd /usr/local/src/php-7.2.21
'./configure' '--prefix=/usr/local/php72' '--with-pdo-pgsql' '--with-zlib-dir' '--with-freetype-dir' '--enable-mbstring' '--with-libxml-dir=/usr' '--enable-soap' '--enable-calendar' '--with-curl' '--with-gd' '--with-pgsql' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-zlib' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-pcntl' '--enable-mbregex' '--enable-exif' '--enable-bcmath' '--with-mhash' '--enable-zip' '--with-pcre-regex' '--with-pdo-mysql' '--with-mysqli' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-openssl' '--with-fpm-user=www-data' '--with-fpm-group=www-data' '--with-libdir=/lib/x86_64-linux-gnu/' '--enable-ftp' '--with-gettext' '--with-xmlrpc' '--with-xsl' '--enable-opcache' '--enable-fpm' '--with-iconv' '--with-xpm-dir=/usr' --disable-fileinfo
make && make install
安装完成后,我们要把源码包中的配置文件复制到PHP安装目录下,源码包中有两个配置 php.ini-development,php.ini-production ,看名字就知道,一个是开发环境,一个是生产环境,我们这里就复制开发环境的
cp php.ini-development /usr/local/php72/lib/php.ini
另外还需要设置环境变量 :修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码:
PATH=$PATH:/usr/local/php72/bin
export PATH
添加完以后,执行命令:
# source /etc/profile
配置php-fpm用于和nginx交互
# cp /usr/local/php72/etc/php-fpm.conf.default /usr/local/php72/etc/php-fpm.conf
# cp /usr/local/php72/etc/php-fpm.d/www.conf.default /usr/local/php72/etc/php-fpm.d/www.conf
修改 www.conf 里面的用户和属组
user = php72
group = php72
添加服务脚本,注意名称:php7为php72-fpm,php5为php56-fpm 便于区分
cp /usr/local/src/php-7.2.21/sapi/fpm/init.d.php-fpm /etc/init.d/php72-fpm
给予权限
chmod +x /etc/init.d/php72-fpm
启动
# 更新配置
systemctl daemon-reload
# 启动
systemctl start php72-fpm.service
# 加入开机启动
systemctl enable php72-fpm.service
四、安装php5.6
cd /usr/local/src/php-5.6.39
编译:
./configure —prefix=/usr/local/php56 \
—with-curl \
—with-freetype-dir \
—with-gd \
—with-gettext \
—with-iconv-dir \
—with-kerberos \
—with-libdir=lib64 \
—with-libxml-dir \
—with-mysqli \
—with-openssl \
—with-pcre-regex \
—with-pdo-mysql \
—with-pdo-sqlite \
—with-pear \
—with-png-dir \
—with-xmlrpc \
—with-xsl \
—with-zlib \
—enable-fpm \
—enable-bcmath \
—enable-libxml \
—enable-inline-optimization \
—enable-gd-native-ttf \
—enable-mbregex \
—enable-mbstring \
—enable-pcntl \
—enable-shmop \
—enable-soap \
—enable-sockets \
—enable-sysvsem \
—enable-xml \
—enable-zip
安装:
make && make install
配置文件复制到PHP安装目录
cp php.ini-development /usr/local/php56/lib/php.ini
配置php-fpm用于和nginx交互
# cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf
修改 php-fpm.conf 里面的用户和属组以及端口
user = php56
group = php56
listen = 127.0.0.1:9001
php5.6的fpm端口号要改为9001。
添加服务脚本,注意名称:php7为php72-fpm,php5为php56-fpm 便于区分
# cp /usr/local/src/php-5.6.39/sapi/fpm/init.d.php-fpm /etc/init.d/php56-fpm
给予权限
chmod +x /etc/init.d/php56-fpm