php放进文件夹里无法编译,基于nginx的zabbix安装问题

首次运用zabbix这个软件,yum安装在Apache上使用时很顺利,但是在预编译安装后在nginx上时遇到了一系列问题,中间一度怀疑人生 ==!,逐一解决后最简单的监控终于成功。

一.php安装的问题

本次通过nginx部署zabbix,需要部署php环境,下面是php7.2.3版本的安装以及出现的问题。

通过wget下载的官网源码包,可能不是.gz.bz等格式结尾的包名,需要手动用mv命令修改包名,然后解压。

1======下面是一个安装PHP包,预编译安装的脚本

tar xfz /tmp/php-7.2.3.tar.gz -C /tmp/ 解压gz包,并将解压后的文件放到/tmp下

cd /tmp/php-7.1.7/ 进入解压后的目录

yum -y install libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libxslt-devel openssl-devel 安装插件,不安装则编译无法成功

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-jpeg-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 编译指定路径等

make 编译

make install 安装

2======问题出在,弄错了centos6和centos7的phpserver文件放置的路径,导致文件无法启动

cp sapi/fpm/php-fpm.service /usr/local/php/sbin/php-fpm

chmod 755 /usr/local/php/sbin/php-fpm

####centos6:####cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

####centos6:####chmod 755 /etc/init.d/php-fpm

cp /usr/local/php/etc/{php-fpm.conf.default,php-fpm.conf} && cp /usr/local/php/etc/php-fpm.d/www.conf{.default,}

cp php.ini-production /usr/local/php/lib/php.ini

3======安装php-redis扩展部分

aws s3 cp s3://yeecall-program/cloudFormation/phpredis-php7.zip /tmp/ 下载php-reids包

cd /tmp/

unzip phpredis-php7.zip

cd phpredis-php7

/usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config && make && make install

4======修改php.ini文件

sed -i '/date.timezone =/s/.*/date.timezone = PRC/g' /usr/local/php/lib/php.ini

sed -i '868iextension=redis.so' /usr/local/php/lib/php.ini

sed -n '868p' /usr/local/php/lib/php.ini

sed -i '/opcache]/azend_extension=opcache.so' /usr/local/php/lib/php.ini

sed -i '/;opcache.enable=1/s/;//g' /usr/local/php/lib/php.ini

sed -i '/opcache.enable_cli=/s/.*/opcache.enable_cli=1/g' /usr/local/php/lib/php.ini

echo "vm.nr_hugepages = 200" >> /etc/sysctl.conf

sysctl -p

sed -i '/;opcache.huge_code_pages/s/;//g' /usr/local/php/lib/php.ini

sed -i '/opcache.memory_consumption=/s/.*/opcache.memory_consumption=512/g' /usr/local/php/lib/php.ini

sed -i '/opcache.fast_shutdown=/s/.*/opcache.fast_shutdown=1/g' /usr/local/php/lib/php.ini

sed -i '/opcache.validate_timestamps=/s/.*/opcache.validate_timestamps=1/g' /usr/local/php/lib/php.ini

sed -i '/opcache.revalidate_freq=/s/.*/opcache.revalidate_freq=2/g' /usr/local/php/lib/php.ini

sed -i '/listen = 127.0.0.1/s/=./= 0.0.0.0:9000/g' /usr/local/php/etc/php-fpm.d/www.conf

脚本运行成功后启动php-fpm.server

php环境布置完成

二.启动zabbix_agentd失败

1======nginx页面无法访问

首先安装在location中写入的目录是/usr/share/nginx/html。则需要把zabbix中的php文件复制到这个目录下

a0d8927f6f410712a41e20b975dad0d9.png

如果php安装没有问题,那么问题可能出现在nginx中location写错了,或者是目录的权限问题。大概率是权限问题。如果是yum安装,那么web目录的属主属组是root需要手动修改,预编译安装则不会出现这个问题。

c134e90a7bd2abcf35af81b3c61d6c8d.png

不是权限问题,则检查location

这里需要注意的事,第二段location只是指定了php文件的存放路径,图片或是.css文件是无法显示的,需要在第一个location中写入文件存放的路径

47fd692e744189ce6cefb3e634c1bdd4.png

输入ip/index.php后 页面可以访问

ecc33c200d2ff63e3a5aa4b7d5e3fbbf.png

下面就是页面配置出现的问题

2======进入配置页面显示,php项中有NO,无法下一步

这是很常见的问题,但是也是继续配置必须要解决的问题。

对照页面端的参数在你的php.ini文件中修改就可以啦

当然要注意的是如果你php和我一样编译了2次那么你也是有两个php.ini文件的,注意区分,当然最好是细心点不要犯这个错误。

3======页面配置时无法连接MySQL

连接不到数据库可能的问题是ip不一致。

如果在数据库赋权是指定的ip是本机的ip,则在页面选择host是不能是localhost,也不能是域名,如果在你的ip已经解析了域名需要在/etc/my.conf中加入一行

skip-name-resolve

跳过MySQL的域名解析

也可能是zabbix_server配置文件中写入的user和password与页面输入的不一致,耐心检查。

4======页面配置时无法创建configure file

edcee1bf3d95c14acb04373f8c9bcb51.png

这个问题解决的办法有2种:

一个是,将/usr/local/nginx/html目录的属主和属组设置成nginx。刷新后问题解决。第二个是,根据提示下载这个文件

7213cc39450c5d87baaca1caeda3e2e5.png

下载完成后放到/usr/local/nginx/html/zabbix/conf/目录下,名字是zabbix.conf.php。再或者手打一份,一般没人会用这个方法==

页面端配置完成。进入zabbix

0b6f0374a7f2d2545c31019328b54f27.png

5======设置好页面端user添加监控的host后,并没有监控到目标的agentd

在zabbix_agentd中会配置下面三个参数

Server=a.b.c.d 数据接收服务器

ServerActive=a.b.c.d 可以使用get的服务器

Hostname=efg

配置完成参数用/usr/sbin/zabbix_agentd命令启动agentd端

用lsof -i:10051端口,发现agentd启动成功

但是查看web端发现:

f83aa896f7e2f80c07ff2e0305e48dec.png

查看日志(/tmp/zabbix_agentd.log,如果没有在配置文件中查找log文件位置)后

预编译没指定Profix路径,应为直接复制了官网的安装代码,导致本次预编译时没写入Profix路径,而安装后文件也没有在默认路径下(/usr/local下),导致二次编译后,产生了两个配置文件。

pkill zabbix_agentd 杀死agentd端进程后

重新更改参数,后启动

cd /usr

sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf 手动指定agentd端运行的配置文件。

问题解决

php安装版本导致的问题解决方法

2af3cea64120a247a248bd04b84efa91.png

解决方法是

826bcc182a90feba9929cf837bac0765.png

三.总结

对zabbix配置文件构成不熟悉,比如启动服务器文件在哪?agentd配置文件在哪?zabbix网页端php文件放在哪里。。。等问题,导致在安装和配置过程中很费时,还用find命令查了很多,说起来惭愧==! 配置php时没有注意centos版本问题导致2次编译,又衍生出一些问题,就像滚雪球一样。。。在对一系列错误时,还是需要冷静处理,毕竟文件是不会出错的,出错误的还是我本身,因为自身出错再跟自己欧气,真的是很不明智,还是要让自己忘记错误带来的挫败感,安慰下自己那颗脆弱的编程心,然后找出错误,不过yum和预编译都安装一遍后总算是对安装过程有熟悉了很多,也是一次丰富的体验。后续zabbix的使用才刚刚开始,loading。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值