zabbix4.0-编译安装:LNMP+zabbix4.0
相关网址:
nginx下载地址:http://nginx.org/en/download.html
php下载地址:https://www.php.net/downloads.php
mysql下载地址:https://dev.mysql.com/downloads/mysql/ ,也可以到mariadb官方下载mariadb数据库,现在是centos7默认的数据库。
zabbix:下载Zabbix
系统版本:centos7
安装包版本:
nginx-1.14.2.tar.gz
php-5.6.40.tar.gz
mysql-5.6.39.tar.gz
zabbix-4.0.5.tar.gz
Nginx编译安装
# yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel # cd /usr/local/src # yum install –y lrzsz # wget 'http://nginx.org/download/nginx-1.14.2.tar.gz' # tar -zxvf nginx-1.14.2.tar.gz # cd nginx-1.14.2 #./configure --prefix=/usr/local/nginx # make && make install
2.配置环境变量,并查看nginx命令是否可用
#vim /etc/profile export PATH=$PATH:/usr/local/nginx/sbin/
#source /etc/profile
#nginx -t
3.使用systemctl管理Nginx
#vim /usr/lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx [Install] WantedBy=multi-user.target
#systemctl daemon-reload
#systemctl start nginx
PHP编译安装
1.下载php包,并编译安装
#yum -y install epel-release #yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel #rz #cd /usr/local/src/ #tar -zxf php-5.6.40.tar.gz #cd php-5.6.40 #./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm (可以编译安装到指定目录,报错缺少相应开发包的话,yum search 寻找,安装相应包即可) 此次错误报错缺少libmcrypt开发包,yum search 寻找后,安装libmcrypt-devel.x86_64即可。 #make && make install
2.配置php的环境变量、修改配置文件
#vim /etc/profile export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/ #source /etc/profile 检查配置文件,会报错 #php-fpm -t 将默认配置文件,重命名为/php-fpm.conf #mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 查看php-fpm的配置文件,查看下listen配置,若该文件中没有Listen监听端口配置,那可能在php-fpm.d/下的配置文件中。 #vim /usr/local/php/etc/php-fpm.conf
3.使用systemctl管理php-fpm
#vim /usr/lib/systemd/system/php-fpm.service [Unit] Description=php-fpm After=network.target [Service] Type=forking ExecStart=/usr/local/php/sbin/php-fpm [Install] WantedBy=multi-user.target 启动php-fpm #systemctl start php-fpm #systemctl enable php-fpm
关于Nginx+PHP注意事项
验证:#vim /usr/local/nginx/html/test.php <?php echo "taobao zabbix"; ?> =====若不修改配置,网站是识别不了该页面的。===
#vim /usr/local/nginx/conf/nginx.conf location / { root html; index index.html index.htm index.php; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # /scripts$fastcgi_script_name; include fastcgi_params; }
红色字为新加字段。
#systemctl restart nginx
Mysql编译安装
#yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel #useradd -s /sbin/nologin mysql #cd /usr/local/src #tar -zxvf mysql-5.6.39.tar.gz #cd mysql-5.6.39 #cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 (安装目录、数据目录可自己选择) -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安装目录 -DMYSQL_DATADIR=/data/mysql 数据库存放目录 -DDEFAULT_CHARSET=utf8 使用utf8字符 -DDEFAULT_COLLATION=utf8_general_ci 检验字符 -DWITH_EXTRA_CHARSETS:STRING=all 安装所有扩展字符集 -DWITH_DEBUG=0 -DWITH_SSL=yes 支持SSL -DWITH_READLINE=1 支持快捷功能 -DENABLED_LOCAL_INFILE=1 允许从本地导入数据 -DWITH_PARTITION_STORAGE_ENGINE=1 \#安装数据库分区 -DMYSQL_TCP_PORT=3306 \#MySQL 监听端口 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径 #make && make install 中途出错,#make clean 清除后,解决再重新编译,一般情况下是缺少依赖组件。
2.配置环境变量
#vim /etc/profile export PATH=$PATH:/usr/local/mysql/bin/ #source /etc/profile
3.编辑mysql配置文件,并创建相应目录
#vim /etc/my.cnf [mysqld] bind-address=0.0.0.0 port=3306 datadir=/data/mysql user=mysql skip-name-resolve long_query_time=2 slow_query_log_file=/data/mysql/mysql-slow.log expire_logs_days=2 innodb-file-per-table=1 innodb_flush_log_at_trx_commit = 2 log_warnings = 1 max_allowed_packet = 512M connect_timeout = 60 net_read_timeout = 120 [mysqld_safe] log-error=/data/mysql/mysqld.log pid-file=/data/mysql/mysqld.pid #mkdir –pv /data/mysql #chown -R mysql:mysql /usr/local/mysql /data/mysql/(如果没有mysql目录,则创建一个再执行)
4.数据库初始化
#yum install –y perl-Module-Install
#/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/mysql/
5.复制启动文件,并使用systemctl管理mysqld,启动。
# cp support-files/mysql.server /etc/init.d/mysqld # chmod a+x /etc/init.d/mysqld 查看mysql是否可以运行 #/etc/init.d/mysqld status #vim /usr/lib/systemd/system/mysqld.service [Unit] Description=mysqld After=network.target [Service] Type=forking ExecStart=/etc/init.d/mysqld start [Install] WantedBy=multi-user.target
#systemctl start mysqld
此时mysql的root用户默认是没有密码的,即默认让127.0.0.1访问,用户名root,不需要密码。
#mysqladmin -h 127.0.0.1 -u root password 'zabbixpwd' mariadb 登录mysql #mysql -h 127.0.0.1 -uroot -pzabbixpwd -A
7.mysql授权某ip可以使用root用户登录
赋予权限: >GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION; 刷新: >flush privileges; 网络登录mysql #mysql -h 192.168.1.11 -uroot -pzabbixpwd -A
至此,LNMP搭建完毕。
LNMP环境测试
#vim /usr/local/nginx/html/test_mysql.php <?php echo "Zabbix 4.X 演示<br><br>"; $conn = new mysqli("127.0.0.1","root","mariadb"); if ($conn->connect_error) { die("连接数据库失败: "); } echo "连接数据库成功"; ?> 验证LNMP环境 http://192.168.1.11/test_mysql.php
zabbix4.0编译安装
#yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel # useradd -s /sbin/nologin zabbix #cd /usr/local/src #wget'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.5/zabbix-4.0.5.tar.gz' # tar -zxvf zabbix-4.0.5.tar.gz #cd zabbix-4.0.5 #./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 ###此编译对应的是mysql源码编译安装后 #make && make install
然后再编译:
#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
2.将zabbix_server添加到systemctl进程中
#vim /usr/lib/systemd/system/zabbix_server.service [Unit] Description=zabbix_server After=network.target [Service] Type=forking ExecStart=/usr/local/zabbix/sbin/zabbix_server [Install] WantedBy=multi-user.target
3.在mysql数据库中创建需要的数据库和用户,然后将sql表结构导入到创建的数据库中。
#mysql -h 127.0.0.1 -uroot -pzabbixpwd -A > create database zabbix character set utf8 collate utf8_bin; > grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd'; >flush privileges; >set names utf8; >use zabbix; >source /usr/local/src/zabbix-4.0.5/database/mysql/schema.sql; >source /usr/local/src/zabbix-4.0.5/database/mysql/data.sql; >source /usr/local/src/zabbix-4.0.5/database/mysql/images.sql;
需要导入的三张表
4.配置zabbix_server的配置文件,并启动zabbix_server进程。
#vim /usr/local/zabbix/etc/zabbix_server.conf LogFile=/usr/local/zabbix/zabbix_server.log DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=zabbixpwd DBPort=3306 Timeout=30 AlertScriptsPath=/usr/local/zabbix/alertscripts ExternalScripts=/usr/local/zabbix/externalscripts LogSlowQueries=3000 # chown zabbix:zabbix -R /usr/local/zabbix/ # systemctl start zabbix_server
5.配置zabbix_web端:
创建相应的目录,复制相应的准备文件及目录
#mkdir /usr/local/nginx/html/zabbix #cp /usr/local/src/php-5.6.40/php.ini-production /usr/local/php/etc/php.ini #cp -a /usr/local/src/zabbix-4.0.5/frontends/php/* /usr/local/nginx/html/zabbix/
优化 #vim /usr/local/php/etc/php.ini post_max_size = 32M max_execution_time = 350 max_input_time = 350 date.timezone = Asia/Shanghai always_populate_raw_post_data = -1
#systemctl restart php-fpm
页面配置完成后,结束;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统