书接上回
PHP相关配置及检查
# php.ini文件中需要相关的参数 [root@zabbix ~]# cd /data/apps/php/etc/ [root@zabbix etc]# grep -E "max_execution_time = 30|max_input_time = 60|post_max_size = 8M" php.ini max_execution_time = 30 #需将30修改成300 max_input_time = 60 #需将60修改成60 post_max_size = 8M #需将8M修改成16M [root@zabbix etc]# grep "date.timezone" php.ini ; http://php.net/date.timezone ;date.timezone = #需在等号后加上Asia/Shanghai,并且将前面的分号删除掉 [root@zabbix etc]# grep "always_populate_raw_post_data" php.ini ;always_populate_raw_post_data = -1 #需要开启(去掉前面的引号) #修改php.ini文件中的参数 [root@zabbix etc]# sed -i 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' php.ini [root@zabbix etc]# sed -i 's#;always_populate_raw_post_data = -1#always_populate_raw_post_data = -1#g' php.ini #检查相关的参数是否修改成功 [root@zabbix etc]# grep -E "max_execution_time = 300|max_input_time = 300|post_max_size = 16M" php.ini max_execution_time = 300 max_input_time = 300 post_max_size = 16M [root@zabbix etc]# grep "date.timezone = Asia/Shanghai" php.ini date.timezone = Asia/Shanghai [root@zabbix etc]# grep "always_populate_raw_post_data" php.ini always_populate_raw_post_data = -1 #验证相关模块是否存在 [root@zabbix ~]# /data/apps/php/bin/php -m|grep "gettext" gettext [root@zabbix ~]# /data/apps/php/bin/php -m|grep "mysqli" mysqli [root@zabbix ~]# /data/apps/php/bin/php -m|grep "ldap" ldap #重启php服务 [root@zabbix etc]# systemctl restart php-fpm [root@zabbix etc]# systemctl status php-fpm|grep "running" Active: active (running) since Wed 2019-09-18 07:56:09 EDT; 27s ago
LNMP环境验证
1.验证nginx能够与php之间的连接
#创建test.info.php文件 [root@zabbix ~]# cd /data/apps/nginx/html/ [root@zabbix html]# echo "<?php phpinfo(); ?>" >test.info.php [root@zabbix html]# cat test.info.php <?php phpinfo(); ?> [root@zabbix html]# chown www:www test.info.php #nginx的配置文件配置如下 [root@zabbix ~]# cat /data/apps/nginx/conf/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } #检查语法,平滑重启nginx [root@zabbix conf]# nginx -t nginx: the configuration file /data/apps/nginx-1.6.1/conf/nginx.conf syntax is ok nginx: configuration file /data/apps/nginx-1.6.1/conf/nginx.conf test is successful [root@zabbix conf]# /etc/init.d/nginxd reload Reloading nginxd configuration (via systemctl): [ OK ]
2.验证php是否能够正常连接mysql
#在mysql中创建root@127.0.0.1用户,密码为chenliang [root@zabbix ~]# dir3306 [root@zabbix 3306]# mysql -uroot -pchenliang -S mysql.sock mysql> grant all on *.* to 'root'@'127.0.0.1' identified by 'chenliang'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit; Bye #在nginx添加test.mysql.php文件 [root@zabbix ~]# cat /data/apps/nginx/html/test.mysql.php <?php $link=mysql_connect("127.0.0.1","root","chenliang"); if(!$link){ echo "mysql_connect fail"; }else{ echo "mysql_connect success"; } ?> [root@zabbix ~]# chown -R www:www /data/apps/nginx/html/test.mysql.php [root@zabbix ~]# nginx -t nginx: the configuration file /data/apps/nginx-1.6.1/conf/nginx.conf syntax is ok nginx: configuration file /data/apps/nginx-1.6.1/conf/nginx.conf test is successful [root@zabbix ~]# /etc/init.d/nginxd reload Reloading nginxd configuration (via systemctl): [ OK ] [root@zabbix ~]# curl localhost:80/test.mysql.php mysql_connect success #删除test.info.php和test.mysql.php文件 [root@zabbix ~]# find /data/apps/nginx/html/ -maxdepth 1 -type f -name "*.php" /data/apps/nginx/html/test.info.php /data/apps/nginx/html/test.mysql.php [root@zabbix ~]# find /data/apps/nginx/html/ -maxdepth 1 -type f -name "*.php"|xargs rm -f #删除mysql中的root@127.0.0.1用户 [root@zabbix ~]# mysql -uroot -pchenliang -S /data/mysql/3306/mysql.sock -e "drop user 'root'@'127.0.0.1'";
编译安装zabbix service
#安装相关的依赖包 [root@zabbix ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo [root@zabbix ~]# yum install -y fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel libevent-devel wget tar gcc gcc-c++ make libcurl-devel [root@zabbix ~]# rpm -qa fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel libevent-devel wget tar gcc gcc-c++ make libcurl-devel net-snmp-devel-5.7.2-43.el7.x86_64 OpenIPMI-devel-2.0.27-1.el7.x86_64 libxml2-devel-2.9.1-6.el7_2.3.x86_64 gcc-c++-4.8.5-39.el7.x86_64 wget-1.14-18.el7_6.1.x86_64 unixODBC-devel-2.3.1-14.el7.x86_64 fping-3.10-4.el7.x86_64 make-3.82-24.el7.x86_64 libcurl-devel-7.29.0-54.el7.x86_64 openssl-devel-1.0.2k-19.el7.x86_64 libevent-devel-2.0.21-4.el7.x86_64 tar-1.26-35.el7.x86_64 gcc-4.8.5-39.el7.x86_64 #创建zabbix用户 useradd zabbix -s /sbin/nologin -M #上传zabbix service软件包 cd /root/tools rz ll zabbix-4.0.12.tar.gz tar xf zabbix-4.0.12.tar.gz cd zabbix-4.0.12 #编译安装zabbix ./configure --prefix=/data/apps/zabbix-4.0.12 \ --with-mysql=/data/apps/mysql/bin/mysql_config \ --with-net-snmp --with-libcurl --with-libxml2 \ --enable-server --enable-agent make && make install ##做软链接 [root@zabbix zabbix-4.0.12]# ln -sv /data/apps/zabbix-4.0.12/ /data/apps/zabbix ‘/data/apps/zabbix’ -> ‘/data/apps/zabbix-4.0.12/’ [root@zabbix zabbix-4.0.12]# chown -R zabbix:zabbix /data/apps/zabbix/ [root@zabbix zabbix-4.0.12]# ls -ld /data/apps/zabbix/ drwxr-xr-x 7 zabbix zabbix 64 Sep 18 06:09 /data/apps/zabbix/ #配置环境变量 [root@zabbix ~]# ls -ld /data/apps/zabbix/bin drwxr-xr-x 2 zabbix zabbix 45 Sep 18 06:09 /data/apps/zabbix/bin [root@zabbix ~]# echo "PATH=/data/apps/zabbix/bin:$PATH" >>/etc/bashrc [root@zabbix ~]# source /etc/bashrc [root@zabbix ~]# which zabbix_get /data/apps/zabbix/bin/zabbix_get [root@zabbix ~]# which zabbix_sender /data/apps/zabbix/bin/zabbix_sender #修改zabbix server的配置文件 [root@zabbix ~]# cd /data/apps/zabbix/etc/ [root@zabbix etc]# ll *.conf -rw-r--r-- 1 zabbix zabbix 10834 Sep 18 06:09 zabbix_agentd.conf -rw-r--r-- 1 zabbix zabbix 17151 Sep 18 06:09 zabbix_server.conf [root@zabbix etc]# grep "DBName" zabbix_server.conf ### Option: DBName # DBName= DBName=zabbix #可以看出默认配置的就是找zabbix库 [root@zabbix etc]# grep "DBUser" zabbix_server.conf ### Option: DBUser # DBUser= DBUser=zabbix #可以看出默认配置的用户是zabbix用户 [root@zabbix etc]# grep -E "DBHost=localhost|DBPassword=" zabbix_server.conf # DBHost=localhost #连接mysql的ip地址 # DBPassword= #连接mysql的用户的密码 [root@zabbix etc]# sed -i 's@# DBHost=localhost@DBHost=127.0.0.1@g' zabbix_server.conf [root@zabbix etc]# sed -i 's@# DBPassword=@DBPassword=zabbixpwd@g' zabbix_server.conf [root@zabbix etc]# grep -E "DBHost=127.0.0.1|DBPassword=" zabbix_server.conf DBHost=127.0.0.1 DBPassword=zabbixpwd #进入源码包复制启动脚本 [root@zabbix ~]# cd /root/tools/zabbix-4.0.12/misc/init.d/fedora/core [root@zabbix core]# ll * -rwxr-xr-x 1 mysql mysql 2170 Aug 26 08:12 zabbix_agentd -rwxr-xr-x 1 mysql mysql 2181 Aug 26 08:12 zabbix_server [root@zabbix core]# cp -a zabbix_server /etc/init.d/ [root@zabbix core]# ll /etc/init.d/zabbix_server -rwxr-xr-x 1 mysql mysql 2181 Aug 26 08:12 /etc/init.d/zabbix_server [root@zabbix ~]# sed -i 's#/usr/local#/data/apps/zabbix#g' /etc/init.d/zabbix_server [root@zabbix ~]# /etc/init.d/zabbix_server start Reloading systemd: [ OK ] Starting zabbix_server (via systemctl): [ OK ] #加入开机自启动 [root@zabbix core]# echo -ne "\n# Boot start zabbix_service USER:chenliang TIME:20190920\n/etc/init.d/zabbix_server start\n" >>/etc/rc.local [root@zabbix core]# tail -2 /etc/rc.local # Boot start zabbix_service USER:chenliang TIME:20190920 /etc/init.d/zabbix_server start
导入到mysql数据库
#进入mysql,创建zabbix库,并创建zabbix@'127.0.0.1'用户对zabbix用户有all权限 [root@zabbix ~]# mysql -uroot -p -S /data/mysql/3306/mysql.sock Enter password: mysql> create database if not exists zabbix character set utf8 collate utf8_general_ci; Query OK, 1 row affected (0.00 sec) mysql> show databases like "zabbix"; +-------------------+ | Database (zabbix) | +-------------------+ | zabbix | +-------------------+ 1 row in set (0.01 sec) mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbixpwd'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> select user,host,authentication_string,password_expired from mysql.user where user='zabbix'; +--------+-----------+-------------------------------------------+------------------+ | user | host | authentication_string | password_expired | +--------+-----------+-------------------------------------------+------------------+ | zabbix | 127.0.0.1 | *24A950DF7C675F34AAEB66A9D5FAD8F951F0379F | N | +--------+-----------+-------------------------------------------+------------------+ 1 row in set (0.00 sec) mysql> exit Bye #进入zabbix service源码包的相关路径,准备导入数据 [root@zabbix ~]# cd /root/tools/zabbix-4.0.12/database/mysql [root@zabbix mysql]# ll * -rw-r--r-- 1 mysql mysql 3956707 Aug 26 08:12 data.sql 第三个导入 -rw-r--r-- 1 mysql mysql 1978341 Aug 26 08:12 images.sql 第二个导入 -rw-r--r-- 1 root root 15381 Sep 18 06:08 Makefile -rw-r--r-- 1 mysql mysql 392 Aug 26 08:12 Makefile.am -rw-r--r-- 1 mysql mysql 15711 Aug 26 08:12 Makefile.in -rw-r--r-- 1 mysql mysql 140265 Aug 26 08:12 schema.sql 第一个导入 #导入数据到mysql [root@zabbix mysql]# mysql -uroot -p -S /data/mysql/3306/mysql.sock zabbix <schema.sql Enter password: [root@zabbix mysql]# mysql -uroot -p -S /data/mysql/3306/mysql.sock zabbix <images.sql Enter password: [root@zabbix mysql]# mysql -uroot -p -S /data/mysql/3306/mysql.sock zabbix <data.sql Enter password:
配置zabbix web
#在nginx的html目录下创建zabbix目录 [root@zabbix ~]# mkdir /data/apps/nginx/html/zabbix [root@zabbix ~]# ls -ld /data/apps/nginx/html/zabbix drwxr-xr-x 2 root root 6 Sep 18 07:32 /data/apps/nginx/html/zabbix #在zabbix service的源码包里复制相关的文件 [root@zabbix ~]# cd /root/tools/zabbix-4.0.12/frontends [root@zabbix frontends]# ls -ld * drwxr-xr-x 10 mysql mysql 4096 Aug 26 08:12 php [root@zabbix frontends]# cp -a php/* /data/apps/nginx/html/zabbix/ [root@zabbix frontends]# chown -R www:www /data/apps/nginx/ #略调nginx的主配置文件 [root@zabbix ~]# cat /data/apps/nginx/conf/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html/zabbix; index index.php; } location ~ \.php$ { root html/zabbix; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } [root@zabbix ~]# nginx -t nginx: the configuration file /data/apps/nginx-1.6.1/conf/nginx.conf syntax is ok nginx: configuration file /data/apps/nginx-1.6.1/conf/nginx.conf test is successful [root@zabbix ~]# /etc/init.d/nginxd reload Reloading nginxd configuration (via systemctl): [ OK ]