一、安装前准备如果已经安装的PHP是通过yum安装,升级前先删除旧版本:
备份php.ini配置文件
#cp /etc/php.ini /etc/php.ini.bak
卸载旧版本PHP:
#yum remove -y php*
注:其实通过yum卸载时,会自动将配置文件php.ini备份为php.ini.rpmsave
如果原本是编译安装的,直接升级覆盖安装即可,可以查看之前的编译参数
进入安装目录
# cd /usr/local/php/bin/
# ./php -i | grep configure
安装依赖功能软件包:
系统光盘默认包含以下软件包,光盘文件这里我挂载在/mnt/cdrom/目录下
# cd /mnt/cdrom/Packages/
# rpm -ivh bzip2-devel-1.0.5-7.el6_0.x86_64.rpm
# rpm ivh freetype-2.3.11-6.el6_2.9.x86_64.rpm
# rpm ivh freetype-devel-2.3.11-6.el6_2.9.x86_64.rpm
# rpm ivh libjpeg-6b-46.el6.x86_64.rpm
# rpm ivh libjpeg-devel-6b-46.el6.x86_64.rpm
# rpm ivh libpng-1.2.49-1.el6_2.x86_64.rpm
# rpm ivh libpng-devel-1.2.49-1.el6_2.x86_64.rpm
如果没有安装以上依赖包,则编译PHP过程中会出现以下报错:
二、编译安装
注意:PHP版本必须大于5.3.0,否则无法通过ZABBIX安装验证
下载地址:http://php.net/downloads.php
解压安装包
# tar -zxvf php-5.6.11.tar.gz
# cd php-5.6.11
编译:
#./configure --prefix=/usr/local/php --with-config-file-path=/etc/ --with-apxs2=/usr/local/httpd/bin/apxs --with-bz2 --with-curl --with-libdir=lib64 --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --with-libxml-dir=/usr/local --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-gettext --with-zlib --with-gd --enable-sockets --disable-ipv6 --enable-gd-native-ttf --enable-mbstring --enable-bcmath --enable-calendar --enable-dom --enable-xml --enable-fpm
参数选项说明:
参数 | | prefix
| 指定安装PHP安装目录
| with-config-file-path
| 指定php.ini位置
| with-apxs2
| 整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开SO模块,这里的路径为Apache为安装的路径,如果不知道在哪里最好查询下apxs在哪里
| with-bz2
| 打开对bz2文件的支持
| with-curl
| 打开curl浏览工具的支持
| enable-sockets
| 打开对bz2文件的支持,zabbix监控必须安装这个模块
| disable-ipv6
| 禁用IPv6支持
| with-gd
| 打开gd库的支持,zabbix监控必须安装这个模块
| with-jpeg-dir
| 打开对jpeg图片的支持,zabbix监控必须安装这个模块
| with-png-dir
| 打开对png图片的支持 ,zabbix监控必须安装这个模块
| with-freetype-dir
| 打开对freetype字体库的支持,zabbix监控必须安装这个模块
| enable-gd-native-ttf
| 支持TrueType字符串函数库,zabbix监控必须安装这个模块
| enable-mbstring
| 多字节,字符串的支持,zabbix监控必须这个模块
| enable-calendar
| 打开日历扩展功能
| with-gettext
| 打开gnu的gettext 支持,编码库用到,zabbix监控必须安装这个模块
| with-libxml-dir
| 打开libxml2库的支持,zabbix监控必须这个模块
| with-zlib
| 启用zlib支持
| with-pdo-mysql
| 启用PDO:mysql支持。
| with-mysqli
| mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
| with-mysql
| mysql安装目录,对mysql的支持
| enable-dom
| 启用DOM支持
| enable-xml
| 启用xml支持
| enable-fpm
| PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置
| with-libdir
| 设置库文件查找路径
| enable-bcmath
| 打开图片大小调整,zabbix监控必须安装这个模块
| 具体更详细的说明,大家可以configure--help查看下帮助手册
开始安装:
#make&& make install
注:如果php已经make过,最好make clean以保证configure指示的参数能够正确被编译.
三、配置PHP 安装之后,php.ini默认不存在。如果需要设置php.ini选项,通过phpinfo()函数查看php.ini默认存放路径,将php源码路径下的php.ini-recommended或php.ini-production复制到其目录下更名为php.ini #cp /tmp/php-5.6.11/php.ini-production /etc/php.ini 配置php # vi /etc/php.ini 打开php.ini配置文件,修改或添加以下参数为如下值,否则ZABBIX安装时会验证不过去。 max_execution_time = 300 memory_limit =256M //最低要求为128M,如果需要频繁调用API,这里建议设置大一些,可以根据httpd进程的 负载做适当调整 post_max_size = 16M max_input_time = 300 date.timezone = PRC session.auto_start = 0 mbstring.func_overload = 2
四、设置php-fpm PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置 复制php-fpm配置配置文件 #cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
#设置 php-fpm开机启动 # cp /tmp/php-5.6.11/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # chmod +x /etc/init.d/php-fpm # chkconfig --add php-fpm # chkconfig php-fpm on # service php-fpm start # netstat -lnt | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
五、设置Apache与php关联 # vi /usr/local/apache/conf/httpd.conf 加入以下内容: LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml .html AddType application/x-httpd-php-source .phps
复制全局命令 #cp /usr/local/php/bin/php /usr/sbin/php 查看升级后版本号是否正确: # php v
六、隐藏PHP版本号 编辑php.ini # vi /etc/php.ini 修改 expose_php On 改成 expose_php Off
重启apache,php版本在http头中隐藏了。 # service httpd restart
登录进zabbix页面中,如果页面显示如下错误: ini_set(): Use of mbstring.internal_encoding is deprecated [dashboard.php:21 → require_once() → ZBase->run()→ ZBase->initLocales() → init_mbstrings() → ini_set() in /var/www/html/zabbix/include/locales.inc.php:25]
解决方案: 将路径中/var/www/html/zabbix/include/locales.inc.php的第25行数据注释掉,页面不会显示错误
接下来会对MYSQL进行升级。。
|