- 系统版本:CentOS 7.1
- 升级前php版本:php5.4
- Zabbix server版本:3.0.5
1.线上监控采用zabbix-3.0.5,经漏洞扫描设备扫描后发现了各种基于 php和openssh,openssl的漏动,于是决定升级php
2.升级步骤
- 先卸载之前yum安装的Php
rpm -evh `rpm -qa|grep php`
- 由于线上zabbix连接的 postgresql,因此需先安装postgresql-devel, 图片处理需要安装libpng-devel, freetype-devel.x86_64, libjpeg-turbo-devel.x86_64等
yum -y install postgresql-devel httpd-devel libpng-devel freetype-devel.x86_64 libjpeg-turbo-devel.x86_64
- 下载Php-7.17源码包
http://cn2.php.net/distributions/php-7.1.7.tar.gz
- 解压后编译安装,主要是编译参数
tar xf php-7.1.7.tar.gz
./configure --prefix=/opt/php7 --enable-fpm --enable-mbstring --enable-bcmath --enable-gd-native-ttf --with-apxs2=/usr/bin/apxs --with-pgsql=/usr/src/postgresql-9.6.0/src/bin/pg_config/pg_config --enable-sockets --with-gd --with-gettext --with-jpeg-dir --with-png-dir --with-freetype-dir
make && make install
- 将php.ini-production复制到配置文件目录,并修改相关配制
cp php-7.1.7/php.ini-production /opt/php7/lib/php.ini
-
重启httpd,登录zabbix后发现,有php报错。这是因为php版本的原因,直接修改zabbix web目录下include/func.inc.php文件
sed -i \'/$last = strtolower(substr($val, -1));/a$val = substr($val,0,-1);\' func.inc.php
- 刷新页面后即恢复正常