CentOS 7自带的PHP5.4、MariaDB 5.5版本甚至无法满足Zabbix 5的运行要求,本文完整梳理从基础环境升级到Zabbix 6部署、核心踩坑解决的全流程,适合快速上手。
一、环境升级:替换默认YUM源,安装高版本依赖
1. 升级PHP至7.2
# 安装EPEL扩展源
yum install -y epel-release
# 安装REMI源(CentOS 7专属)
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 安装yum源管理工具(用于切换PHP版本)
yum install -y yum-utils
# 启用PHP7.2源(关闭默认5.4源)
yum-config-manager --enable remi-php72
# 安装PHP7.2核心包及Zabbix依赖扩展
yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
# 验证PHP版本(输出7.2.x即为成功)
php -v
# 启动并设置PHP-FPM开机自启
systemctl start php-fpm
systemctl enable php-fpm
2. 升级MariaDB至10.6
# 创建MariaDB自定义YUM源
cat > /etc/yum.repos.d/MariaDB.repo << 'EOF'
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.6/centos7-amd64
gpgkey = https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1
EOF
# 清理缓存并重建
yum clean all && yum makecache fast
# 安装MariaDB服务端和客户端
yum install -y MariaDB-server MariaDB-client
# 启动并设置开机自启
systemctl start mariadb
systemctl enable mariadb
二、Zabbix 6.0 安装与数据库配置
1. 安装Zabbix官方源及核心组件
# 安装Zabbix 6.0 YUM源(CentOS 7 版本)
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
# 清理缓存
yum clean all
# 安装Zabbix核心组件(服务端+Web端+Agent+SQL脚本)
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-sql-scripts zabbix-agent
2. 创建Zabbix数据库并导入初始化脚本
# 登录MySQL
mysql -uroot -p
# 1. 创建zabbix数据库
CREATE DATABASE IF NOT EXISTS zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
# 2. 创建zabbix用户,仅允许本地访问(我密码设为zabbix)
CREATE USER IF NOT EXISTS 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
# 3. 授予zabbix用户数据库全部权限
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
# 4. 刷新权限
FLUSH PRIVILEGES;
# 5. 退出MySQL
EXIT;
# 导入Zabbix初始化脚本(按顺序执行)
# 第一步:导入表结构
mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/schema.sql
# 第二步:导入图片资源
mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/images.sql
# 第三步:导入初始数据(默认用户/权限等)
mysql -u zabbix -p zabbix < /usr/share/zabbix-mysql/data.sql
# 执行时输入密码:zabbix
三、PHP与Apache配置优化
1. 配置Zabbix Web的PHP核心参数
# 编辑Zabbix Apache配置文件
vim /etc/httpd/conf.d/zabbix.conf
在<Directory "/usr/share/zabbix">区块内新增以下 PHP 配置(关键是时区和资源限制):
<Directory "/usr/share/zabbix">
# 保留原有配置不变
<IfModule php_module>
php_value max_execution_time 300 # 最大执行时间
php_value memory_limit 128M # 内存限制
php_value post_max_size 16M # POST数据最大值
php_value upload_max_filesize 2M # 文件上传限制
php_value max_input_time 300 # 输入数据最大解析时间
php_value max_input_vars 10000 # 最大输入变量数
php_value date.timezone Asia/Shanghai # 核心:设置中国时区
</IfModule>
# 保留原有配置不变
</Directory>
2. 配置PHP-FPM的Zabbix专属参数
# 编辑PHP-FPM的Zabbix配置文件
vi /etc/php-fpm.d/zabbix.conf
添加以下内容(指定运行用户和时区):
listen.acl_users = apache # 允许apache用户访问PHP-FPM
php_value[date.timezone] = Asia/Shanghai # 同步时区配置
3. 重启服务使配置生效
systemctl restart httpd php-fpm
四、Zabbix Server配置与核心踩坑解决
1. 配置Zabbix Server数据库连接
# 编辑Zabbix Server配置文件
vim /etc/zabbix/zabbix_server.conf
找到以下配置项,取消注释并填写数据库密码:
DBName=zabbix # 数据库名(默认无需修改)
DBUser=zabbix # 数据库用户(默认无需修改)
DBPassword=zabbix # 取消注释,填写之前设置的数据库密码
2. 解决 Web 安装页面循环问题
问题现象:访问http://服务器IP/zabbix/setup.php完成配置后,始终跳回安装页面,无法进入 Zabbix 控制台。
问题原因:Zabbix 6.0 官方文档标注配置文件路径为/usr/share/zabbix/etc/zabbix/web,但实际程序会优先读取/etc/zabbix/web目录下的配置文件,导致配置未生效。
解决方法:
# 创建/etc/zabbix/web目录(若不存在)
mkdir -p /etc/zabbix/web
# 复制默认配置文件到实际读取路径
cp /usr/share/zabbix/etc/zabbix/web/zabbix.conf.php /etc/zabbix/web/
# 设置配置文件权限(确保所有用户可读取)
chmod 644 /etc/zabbix/web/zabbix.conf.php
# 重启Zabbix Server和相关服务
systemctl restart zabbix-server httpd php-fpm
3. 启动Zabbix Agent并设置开机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent
五、访问验证
-
浏览器访问
http://服务器IP/zabbix,使用默认账号密码登录:- 账号:Admin
- 密码:zabbix
总结
- CentOS 7需通过 REMI 源升级PHP至 7.2、MariaDB官方源升级至10.6,才能满足Zabbix 6.0 的运行要求;
- Zabbix数据库必须使用
utf8mb4字符集,避免中文乱码问题; - Web安装页面循环的核心解决方法是将Zabbix配置文件复制到
/etc/zabbix/web目录,并确保644权限。