前言

  本项目基于 RHEL10 操作系统,采用LNMP 框架(Linux+Nginx+MariaDB+PHP)完成国产 Discuz! X5.0 开源论坛系统的部署搭建。

项目需求

1.完成系统环境初始化,关闭防火墙与 SELinux 安全机制,配置本地 YUM 软件仓库;
2.安装 Nginx 网页服务、MariaDB 数据库、PHP 运行环境及依赖组件,启动并设置服务开机自启;完成数据库初始化,创建论坛专用数据库;
3.下载 Discuz 源码包并解压至网站发布目录,通过浏览器访问安装向导完成论坛配置,填写数据库与管理员账号信息,解决 PHP 模块依赖问题,最终成功部署可正常访问的论坛网站。
4.通过本项目掌握 LNMP 整套 Web 服务组件协同工作原理,熟悉 Linux 下动态网站完整部署流程,理解网页服务器、数据库、脚本语言三者之间的配合关系。

1 项目架构

1.1 整体架构

本项目采用 LNMP + Discuz 的技术架构完成论坛站点搭建。
LNMP分别代表:Linux + Nginx + MariaDB + PHP

  • Linux(RHEL10)作为底层操作系统,提供基础运行环境;
  • Nginx作为Web网页服务器,接收客户端浏览器请求;
  • MariaDB负责存储论坛全部业务数据,包含用户账号、帖子、评论等信息;
  • PHP作为服务端脚本语言,执行Discuz论坛业务逻辑;
  • Discuz! X5.0为上层应用,是实际对外提供访问的论坛程序。

整体工作流程:用户浏览器发起访问请求 → 请求送达Nginx服务 → Nginx将PHP动态脚本交给PHP解析执行 → PHP对MariaDB数据库完成读写操作 → 将处理完成的网页回传给Nginx,最终返回给浏览器展示页面。

1.2 Nginx

Nginx最早于2004年10月4日为俄罗斯知名门户网站开发,是一款高性能、轻量级的Web网站服务软件,凭借运行稳定、功能丰富的特点被全球大量网站使用。

  • 资源占用低:对系统CPU、内存消耗小,硬件要求不高;
  • 并发能力强:支持大量用户同时访问,高并发场景表现优秀;
  • 主要作用:接收浏览器HTTP请求,处理静态资源,转发PHP动态脚本请求,是当前互联网主流的http服务程序。

1.3 MariaDB

MariaDB是开源关系型数据库管理软件,它是MySQL的社区分支项目,由开源社区持续维护开发。

  • 高度兼容MySQL:语法、命令、接口几乎和MySQL完全一致,操作方式基本相同,两者性能水平接近;
  • 在本项目中负责持久化保存Discuz论坛所有数据:注册用户信息、帖子内容、板块设置、管理员配置等全部数据均存放于MariaDB中。

1.4 PHP

PHP全称 Hypertext Preprocessor,超文本预处理器,诞生于1995年,是开源的服务器端脚本语言。

  • 语言吸收C、Java、Perl等语言的优点,具备开源免费、开发快捷、跨平台、执行效率高等特点,是Web开发领域最经典的语言之一;
  • 代码运行在服务器端,专门用来生成动态网页;
  • Discuz论坛整套程序就是基于PHP语言开发,所有论坛业务逻辑均依靠PHP解释运行。

1.5 Discuz

Discuz是国内通用成熟的社区论坛软件系统。

  • 2001年6月正式面世,拥有十几年发展历史,全球有200多万网站部署使用,属于全球普及率最高的论坛系统之一;
  • 国产软件,后台全中文,适配国内网络环境,可快速搭建论坛、社区、交流站点;
  • 2010年8月23日被腾讯收购,持续迭代维护;
  • 官方网址:https://www.discuz.vip/
  • 本项目使用Discuz! X5.0开源版本,部署在LNMP环境之上实现完整论坛功能。

2 项目准备

2.1 安装RHEL10系统

具体操作过程参考:https://blog.csdn.net/weixin_61703053/article/details/163861073?spm=1001.2014.3001.5501

2.2 配置系统

关闭防火墙、关闭SELinux、设置开机不启动并自检

/*
  环境:RHEL 10(RHEL8/9/10通用)
  实验目的:部署服务前关闭防火墙、SELinux安全限制
  注意区分:防火墙(firewalld) 和 SELinux 是两套独立安全机制
*/

// ========== 1.firewalld防火墙操作 ==========
 // 立即停止防火墙,当前会话生效,重启失效
systemctl stop firewalld.service    

// 取消开机自启,永久配置,重启依然不启动   
systemctl disable firewalld.service   

 // 查看防火墙状态
systemctl status firewalld.service     


// ========== 2.SELinux 关闭方式==========

// grubby修改内核参数彻底关闭 SELinux,写入引导配置,不即时生效
grubby --update-kernel ALL --args selinux=0

// 设置永久主机名,立即生效,重启不丢失
hostnamectl set-hostname server

// 重启系统,内核参数完整生效
reboot

// -------- 重启完成后执行验证 --------

// 查看SELinux状态,输出Disabled代表彻底关闭成功
getenforce

// 查看firewalld防火墙状态
systemctl status firewalld.service

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

配置软件仓库
  这里只展示yum本地源的配置方式,其他方法可见博客https://blog.csdn.net/weixin_61703053/article/details/164066040?spm=1001.2014.3001.5501

# 编辑本地源配置文件
vim /etc/yum.repos.d/local.repo
/*
[BaseOS]
name=BaseOS
//本地光盘源路径
baseurl=file:///mnt/BaseOS
//关闭 GPG 签名校验,本地源设置为0
gpgcheck=0

[AppStream]
name=AppStream
//AppStream 软件仓库光盘挂载路径
baseurl=file:///mnt/AppStream
//关闭 GPG 签名校验
gpgcheck=0
*/

# 将光盘设备挂载到/mnt目录,警告read‑only为正常现象,光盘本身只读
mount /dev/sr0 /mnt

# 清理dnf旧缓存
dnf clean all

# 生成软件源元数据缓存
dnf makecache

//测试网络是否联通
ping www.baidu.com

在这里插入图片描述

在这里插入图片描述

2.3 下载所需软件

Discuz 安装包下载页面:https://www.discuz.vip/download

3 部署项目

3.1 安装LNMP相关软件

dnf 指令安装nginx、mariadb‑server、php及php扩展命令

//下载软件
dnf install nginx mariadb-server php -y

在这里插入图片描述

3.2 启动服务


// 设置Nginx开机自启并立即启动 
systemctl enable --now nginx

// 设置MariaDB开机自启并立即启动
systemctl enable --now mariadb

// 查看Nginx服务状态 
systemctl status nginx

//查看MariaDB数据库服务状态 
systemctl status mariadb

在这里插入图片描述

3.3 配置mariadb

//登录MariaDB数据库
mysql
//修改数据库root用户密码为123
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
//刷新权限,密码配置生效
FLUSH PRIVILEGES;
//创建lutan数据库
create database lutan;
//查看全部数据库,验证创建结果
show databases;

//退出
exit

在这里插入图片描述

3.4 下载Discuz安装包

在这里插入图片描述

//wget指令下载安装
wget  https://download.discuz.vip/redirect/?X5.0 -O Discuz.zip

//将Discuz.zip解压到nginx默认网页发布目录,-d指定解压目标路径
unzip /root/Discuz.zip -d /usr/share/nginx/html/

在这里插入图片描述

3.5 Web端完成Discuz安装配置

浏览器访问
http://xxx.xxx.xxx.xxx(ip地址)/upload

在这里插入图片描述

解决函数依赖性

在这里插入图片描述

//搜索源中php和mysql相关扩展包
dnf list | grep mysql | grep php
//安装mysqlnd扩展
dnf install php-mysqlnd -y

在这里插入图片描述

刷新网页

在这里插入图片描述

自行注册登录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进入后台管理

在这里插入图片描述
在这里插入图片描述

正常注册登录即可

在这里插入图片描述

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐