去年年底PHP环境出了7.0版本,紧接着各程布署php7,单位的一些平台也基于PHP7开发,今天在布署时发现以前的环境是php5.3,百度了一下成功升级到7.0.2。
以下为分享升级步骤:
下载
# wget http://php.net/get/php-7.0.2.tar.gz/from/a/mirror
建议安装之前先看看安装帮助文件INSTALL
解压安装
# tar zxvf php-7.0.2.tar.gz
# cd php-7.0.2
首先查看安装帮助
# ./configure --help
# ./configure --prefix=/usr/local/gridinfo/php702 \
--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-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
如果配置错误,需要安装需要的模块,直接yum一并安装依赖库
# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel
编译安装
# make && make install
配置文件
# cp php.ini-development /usr/local/php/lib/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
需要注意的是php7中www.conf这个配置文件配置phpfpm的端口号等信息,如果你修改默认的9000端口号需在这里改,再改nginx的配置
附:服务脚本
在init.d下创建php-fpm服务脚本
vim /etc/init.d/php-fpm
#!/bin/bash
# php-fpm startup script for the php-fpm
# php-fpm version:5.5.0-alpha6
# chkconfig: - 85 15
# description: php-fpm is very good
# processname: php-fpm
# pidfile: /var/run/php-fpm.pid
# config: /usr/local/gridinfo/php702/etc/php-fpm.conf
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
php_command=/usr/local/gridinfo/php702/sbin/php-fpm
php_config=/usr/local/gridinfo/php702/etc/php-fpm.conf
php_pid=/usr/local/gridinfo/php702/var/run/php-fpm.pid
RETVAL=0
prog="php-fpm"
rm -rf $php_pid
#start function
php_fpm_start() {
daemon /usr/local/gridinfo/php702/sbin/php-fpm
}
start(){
if [ -f $php_pid ]
then
echo "php-fpm already start..."
exit 1
fi
echo -n $"Starting php-fpm..."
php_fpm_start
echo
}
stop(){
echo -n $"Shutting down php-fpm... "
killproc php-fpm
echo
# if [ -f $php_pid ]
# then
# parent_pid=`cat $php_pid`
# all_pid=`ps -ef | grep php-fpm | awk '{if('$parent_pid' == $3){print $2}}'`
# for pid in $all_pid
# do
# kill $pid
# done
# kill $parent_pid
# fi
}
restart(){
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
然后
:wq
保存退出
赋权后通过
service php-fpm start # 启动服务
service php-fpm stop # 停服务
service php-fpm restart # 重启服务
配置opcache
官网地址:http://php.net/opcache
使用下列推荐设置来获得较好的 性能:
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
你也可以禁用 opcache.save_comments 并且启用 opcache.enable_file_override。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。
vim /usr/local/gridinfo/php702/etc/php.ini
# 加入
zend_extension=/usr/local/gridinfo/php702/lib/php/extensions/no-debug-non-zts-20141001/opcache.so