设为首页 收藏本站
查看: 895|回复: 0

[经验分享] ZABBIX企业监控实践(3):升级与配置PHP

[复制链接]

尚未签到

发表于 2018-12-18 12:53:04 | 显示全部楼层 |阅读模式
  一、安装前准备
  如果已经安装的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进行升级。。
  






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652871-1-1.html 上篇帖子: php中利用fsockopen实现异步执行 下篇帖子: 基于PCNTL的PHP并发编程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表