一、项目背景
在互联网快速发展的当下,线上交流平台的需求日益增长。论坛作为一种经典的交流方式,能够汇聚不同领域、不同兴趣的人群,为大家提供一个分享观点、交流经验、解决问题的空间。然而,现有的一些论坛存在功能陈旧、用户体验不佳等问题。为了满足用户对高效、便捷、个性化交流平台的需求,我们决定搭建一个全新的论坛。
二、项目目的
本项目旨在搭建一个功能丰富、界面友好、稳定可靠的论坛平台。通过该论坛,用户可以自由发布帖子、参与讨论、分享资源。我们希望为用户营造一个活跃、和谐的交流氛围,促进知识的传播与共享。同时,提升自身在网站开发、数据库管理、服务器搭建等方面的实践能力,为未来的职业发展积累宝贵经验。
三、项目关键内容介绍
3.1 Nginx
Nginx是一款开源的高性能Web服务器、反向代理及电子邮件(IMAP/POP3)代理服务器。它轻量级、低内存占用、并发处理能力强,能高效处理静态资源,还可对动态请求做反向代理、负载均衡,被广泛应用于各类网站与应用。
3.2 mariadb
Mariadb是一种数据库软件
由开源社区维护,是MySQL的分支,几乎完全兼容MySQL,两者性能基本一致,操作十分相似
3.3 PHP
PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,发明于 1995年,它吸取了 C 语言、Java 语言及 Perl 语言的很多优点,具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前 Web 开发领域最常用的语言之一(后端开发)
Discuz默认使用PHP编写
3.4 Discuz
Discuz一套通用的社区论坛软件系统
自2001年6月面世以来,Discuz!已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度、覆盖率最大的论坛软件系统之一
2010年8月23日被腾讯收购
网址:
四、项目内容和过程
4.1 关闭防火墙的开机自动启动
[root@localhost ~]# systemctl disable firewalld --now
4.2 关闭selinux
[root@localhost ~]# setenforce 0
也可以做一个永久修改,先进入/etc/selinux/config文件里面,修改参数,把参数改为permissive:
4.3 修改主机名
[root@localhost ~]# hostnamectl set-hostname yuanandzhen
[root@yuanandzhen ~]
# 重启使新主机名生效
[root@yuanandzhen ~]# reboot
4.4 测试网络连通性
4.4.1 linux访问百度
[root@yuanandzhen ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (183.2.172.177) 56(84) 比特的数据。
64 比特,来自 183.2.172.177 (183.2.172.177): icmp_seq=1 ttl=128 时间=35.6 毫秒
64 比特,来自 183.2.172.177 (183.2.172.177): icmp_seq=2 ttl=128 时间=36.9 毫秒--- www.a.shifen.com ping 统计 ---
已发送 2 个包, 已接收 2 个包, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 35.642/36.294/36.947/0.652 ms
4.4.2 windows ping linux
打开cmd Ping虚拟机的ip地址
C:\Users\13172>ping 192.168.247.131
正在 Ping 192.168.247.131 具有 32 字节的数据:
来自 192.168.247.131 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.247.131 的回复: 字节=32 时间<1ms TTL=64
4.5 配置yum源
下面咱们以配置本地yum源为例,为大家展示如何配置:
本地 yum 源是指将原本从网络远程仓库获取软件包的 yum 配置,改为从本地的存储路径获取。本地路径可以是光盘、硬盘分区等,这样即便网络不佳或无网络,也能安装、更新软件。
4.5.1 将本地光盘挂载至本地目录/media下
# 1 将本地光盘挂载至本地目录/media下
[root@yuanandzhen ~]# mount /dev/sr0 /media
mount: /media: WARNING: source write-protected, mounted read-only.
[root@yuanandzhen ~]# cd /media/
[root@yuanandzhen media]# ls ##可以看见有一个仓库
AppStream EULA images RPM-GPG-KEY-redhat-beta
BaseOS extra_files.json isolinux RPM-GPG-KEY-redhat-release
EFI GPL media.repo# 移动到yum源配置文件路径
[root@yuanandzhen media]# cd /etc/yum.repos.d
[root@yuanandzhen yum.repos.d]# ls
redhat.repo
# 备份已存在yum源配置文件,使其失效
[root@yuanandzhen yum.repos.d]# mv redhat.repo redhat.repo.back
[root@yuanandzhen yum.repos.d]# ls
redhat.repo.back
4.5.2 新建本地yum源配置文件
[root@yuanandzhen yum.repos.d]# vim dvd.repo
[BaseOS]
name=BaseOS
baseurl=file:///media/BaseOS (从本地文件访问,不是从网上的超文本传输协议中访问)
gpgcheck=0 ( 用于 yum 配置。开启此设置后,yum 在安装软件包时,不会对软件包进行 GPG 签名验证,可加快安装速度,但会降低安全性。)[Appstream]
name=Appstream
baseurl=file:///media/AppStream
gpgcheck=0
4.5.3 重建缓存
[root@yuanandzhen yum.repos.d]# yum makecache
[root@yuanandzhen yum.repos.d]# yum repolist
(查看已经启用的软件仓库)
4.6 安装nginx、mariadb-server、php软件
[root@yuanandzhen ~]# yum install nginx mariadb-server php -y
[root@yuanandzhen ~]# yum install php-mysqlnd -y
4.7 开启并运行nginx和mariadb服务
[root@yuanandzhen ~]# systemctl start nginx
[root@yuanandzhen ~]# systemctl enable nginx[root@yuanandzhen ~]# systemctl enable --now mariadb
4.8 用xftp软件从windows上传discuz包到linux并解压
[root@yuanandzhen ~]# unzip /root/Discuz_X3.5_SC_UTF8_20250205.zip -d /usr/share/nginx/html/
4.9 设置权限
[root@yuanandzhen ~]# chmod -R 777 /usr/share/nginx/html/upload/{config,data,uc*}
4.10 初始化数据库
[root@yuanandzhen ~]# mysql_secure_installation
4.11 登录进数据库并创建名字为kungeluntan的数据库
[root@yuanandzhen ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> create database kungeluntan;MariaDB [(none)]> quit
Bye
4.12 在浏览器输入你的linux主机的ip地址/upload
会弹出下面的页面:
4.13 注册登录设置
4.14 完成后的页面
五、项目总结
本次项目以 Nginx、MariaDB、PHP 和 Discuz 搭建论坛。在做项目的过程中,我掌握了 Nginx 配置实现高效服务,用 MariaDB 完成数据存储管理,借助 PHP 支持动态交互,结合 Discuz 快速构建论坛框架。成功实现用户注册登录、发帖回帖、板块管理等核心功能。此次实践提升了我的技术能力和问题解决能力,为后续学习和工作积累宝贵经验。