PHP可以在一台主机上安装多个版本,我们先配置好PHP7的环境,PHP-FPM监听不同的端口,然后就可以尝试将部份业务切到PHP7下测试。
1:先安装系统类库
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel
2:下载并安装PHP7
wget http://cn2.php.net/get/php-7.0.0.tar.gz/from/this/mirror -O php-7.0.0.tar
tar -zxvf php-7.0.0.tar
cd php-7.0.0
./configure --prefix=/usr/local/php7 \
--enable-fpm \
--enable-mbstring \
--enable-pcntl \
--enable-sockets \
--with-mysqli \
--with-pdo-mysql \
--enable-mysqlnd \
--with-gd \
--with-jpeg-dir \
--with-freetype-dir \
--with-iconv \
--with-openssl \
--with-curl \
--enable-opcache \
--with-mcrypt \
--enable-shared \
--enable-xml \
--enable-session
make
make install
3:安装redis扩展
wget https://github.com/phpredis/phpredis/archive/php7.zip -O php7_reids.zip
unzip php7_reids.zip
cd phpredis-php7/
/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
make
make install
4:安装mongodb扩展
wget https://pecl.php.net/get/mongodb-1.1.6.tgz
tar -zxvf mongodb-1.1.6.tgz
cd mongodb-1.1.6
/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
make
make install
由于新的扩展和原来的扩展使用大不一样,这里推荐这个库!
https://github.com/mongodb/mongo-php-library
http://mongodb.github.io/mongo-php-library/
5:安装libevent扩展
wget https://github.com/expressif/pecl-event-libevent/archive/master.zip -O pecl-event-libevent.zip
unzip pecl-event-libevent.zip
cd pecl-event-libevent-master/
/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
make
make install
6:php.ini配置
cp php.ini-production php.ini
#在php.ini增加发下几行
extension=redis.so
extension=libevent.so
extension=mongodb.so
#启用opcache
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
7:php-fpm配置
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf
#php-fpm.conf修改
daemonize = yes
#www.conf修改
listen = 127.0.0.1:9900
listen.allowed_clients = 127.0.0.1
user = apache
group = apache
pm.max_children = 100
pm = dynamic
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 50
pm.max_requests = 100000
request_slowlog_timeout = 6s
slowlog = log/$pool.log.slow
8:脚本启动和任务配置
#创建log目录
mkdir /usr/local/php7/log
#启动
/usr/local/php7/sbin/php-fpm
#重启
kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
#配置任务重启
01 01 * * * kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
简单总结如上!