- 系統版本: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
- 刷新頁面后即恢復正常