去年年底PHP环境出了7.0版本,紧接着各程布署php7,单位的一些平台也基于PHP7开发,今天在布署时发现以前的环境是php5.3,百度了一下成功升级到7.0.2。
以下为分享升级步骤:
下载
1 |
# wget http://php.net/get/php-7.0.2.tar.gz/from/a/mirror |
建议安装之前先看看安装帮助文件INSTALL
解压安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# 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一并安装依赖库
1 |
# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel |
编译安装
1 |
# make && make install |
配置文件
1 2 3 |
# 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服务脚本
1 |
vim /etc/init.d/php-fpm |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
#!/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 |
然后
1 |
:wq |
保存退出
赋权后通过
1 2 3 |
service php-fpm start # 启动服务 service php-fpm stop # 停服务 service php-fpm restart # 重启服务 |
官网地址:http://php.net/opcache
使用下列推荐设置来获得较好的 性能:
1 2 3 4 5 6 |
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。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。
1 2 3 |
vim /usr/local/gridinfo/php702/etc/php.ini # 加入 zend_extension=/usr/local/gridinfo/php702/lib/php/extensions/no-debug-non-zts-20141001/opcache.so |