论坛服务搭建

server/2024/12/17 7:11:09/

一、实验背景

论坛是互联网的一种应用服务模式。通过这种服务,互联网用户可以在上面浏览到其他用户在网站发表的各种主题、 文章、资讯信息、问题交流等具有各种表现形式的文字。并且用户可以在上面针对某个具体的内容即时地发表自己的 回答、看法、议论等,或者直接发表自己的文章、问题或其它内容。由于论坛的这种特点,使得全球的用户都可以随 时随地进行交流,从而真正做到全球信息的交流。论坛具有多种表现形式,各网站可以按照自己的服务特点设计出适 合自身的论坛形式。例如,各类论坛、在线问答、各种供求信息、网上订购等都可以是论坛的表现形式。论坛目前在 互联网上得到非常广泛的应用,而且反应非常活跃。由于论坛可以使网上信息交流变得非常方便、广泛、及时,因而 对于加深网站的服务深度、提高网站的知名度、拓展网站的交流范围、激活网站的人气都有不小的作用,因此在互联 网的服务中,论坛将是一个重要的内容。

在 Internet飞速发展的二十一世纪的今天,互联网成为人们快速获取、发布和传递交流信息的重要渠道。它在人们政 治、经济、生活、学习等各个方面发挥着重要的作用。随着Internet的飞速发展,目前,国内外大部分机关、学校、 公司、企业都已经或正在建立自己的论坛。由此可见学生校园论在Internet应用上的地位显而易见,它已成为学校及 其它单位信息化建设中倍受人们的重视重要组成部分。 

二、实验目的

本实验旨在帮助学生理解项目的实施流程,能够将所学知识点串联起来形成一个知识体系。通过本实验,希望同学们 能够达到如下目的:

1. 深入理解配置仓库的重要性

2. 掌握软件安装步骤,软件服务管理

3. 掌握文件目录管理、用户权限管理、网络配置相关命令

4. 掌握防火墙配置和管理

5. 掌握对数据库的安装、配置和操作

6. 学会通过页面引导来对项目进行配置和管理

三、实验环境

1. 宿主机操作系统:Windows 11 23H2 专业版

2. 虚拟机软件:VMware Workstation 17 Pro

3. 虚拟机操作系统:Redhat-9.2

4. 远程连接工具:XShell 7.x

5. 论坛程序运行环境:php-8.0.27-1.el9_1.x86_64

6. HTTP服务:httpd-2.4.53-11.el9_2.4.x86_64

7. 数据库:mariadb-3:10.5.16-2.el9_0.x86_64

8. 论坛源码:Discuz_X3.5_SC_UTF8

四、实验步骤

论坛服务实验搭建步骤如下:

1. 配置本地仓库

首先在 /etc/yum.repo.d/ 目录下新建一个仓库文件,如:yum.repo。文件配置内容如下:

[root@localhost yum.repos.d]# vim yum.repo
# 添加如下内容
[baseos]
name=baseos
baseurl=/mnt/BaseOS
gpgcheck=0
[appstream]
name=appstream
baseurl=/mnt/AppStream
gpgcheck=0

然后将光盘挂载到 /mnt 目录下:

[root@localhost yum.repos.d]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.

最后验证是否挂载成功:

[root@localhost yum.repos.d]# ls /mnt
AppStream  EFI   extra_files.json  images    media.repo               RPM-GPG-KEY
redhat-release
BaseOS     EULA  GPL               isolinux  RPM-GPG-KEY-redhat-beta

2. 安装PHP运行环境

论坛是以 PHP 语言开发的,需要运行在 PHP 环境下。执行如下命令安装 PHP 语言运行环境:

[root@localhost yum.repos.d]# dnf install -y php*..........Installed:apr-1.7.0-11.el9.x86_64                                apr-util-1.6.1-20.el9.x86_64apr-util-bdb-1.6.1-20.el9.x86_64                       apr-util-openssl-1.6.1
20.el9.x86_64autoconf-2.69-38.el9.noarch                            automake-1.16.2-6.el9.noarchcmake-filesystem-3.20.2-8.el9.x86_64                   gcc-11.3.1-4.3.el9.x86_64gcc-c++-11.3.1-4.3.el9.x86_64                          glibc-devel-2.34
60.el9.x86_64glibc-headers-2.34-60.el9.x86_64                       httpd-2.4.53
11.el9_2.4.x86_64httpd-core-2.4.53-11.el9_2.4.x86_64                    httpd-filesystem-2.4.53
11.el9_2.4.noarchhttpd-tools-2.4.53-11.el9_2.4.x86_64                   kernel-headers-5.14.0
284.11.1.el9_2.x86_64..........php-process-8.0.27-1.el9_1.x86_64                      php-snmp-8.0.27
1.el9_1.x86_64php-soap-8.0.27-1.el9_1.x86_64                         php-xml-8.0.27
1.el9_1.x86_64redhat-logos-httpd-90.4-1.el9.noarch                   rrdtool-1.7.2-21.el9.x86_64tokyocabinet-1.4.48-19.el9.x86_64                      unixODBC-2.3.9-4.el9.x86_64xz-devel-5.2.5-8.el9_0.x86_64                          zlib-devel-1.2.11
39.el9.x86_64Complete!

3. 安装HTTPD服务

由于论坛是通过浏览器访问的,而浏览器访问服务器是通过 HTTP 协议访问的,而处理 HTTP 协议是通过 HTTPD 服 务实现的,因此需要安装 HTTPD 服务。执行如下命令来安装 HTTPD 服务:

[root@localhost yum.repos.d]# dnf install -y httpdUpdating Subscription Management repositories.Unable to read consumer identityThis system is not registered with an entitlement server. You can use subscription
manager to register.Last metadata expiration check: 0:03:30 ago on Mon 25 Mar 2024 02:37:41 PM CST.Package httpd-2.4.53-11.el9_2.4.x86_64 is already installed.Dependencies resolved.Nothing to do.Complete!

4. 安装数据库

论坛的数据是存在数据库中的,在 Linux 中推荐使用 Mariadb 数据库,它与 MySQL 数据库是同出一源的。安装数 据库时需要安装客户端和服务端,执行如下命令来安装:

[root@localhost yum.repos.d]# dnf install -y mariadb mariadb-server......Installed:mariadb-3:10.5.16-2.el9_0.x86_64                              mariadb-backup
3:10.5.16-2.el9_0.x86_64   mariadb-common-3:10.5.16-2.el9_0.x86_64                       mariadb-errmsg
3:10.5.16-2.el9_0.x86_64mariadb-gssapi-server-3:10.5.16-2.el9_0.x86_64                mariadb-server
3:10.5.16-2.el9_0.x86_64mariadb-server-utils-3:10.5.16-2.el9_0.x86_64                 mysql-selinux-1.0.5
1.el9_0.noarchperl-DBD-MariaDB-1.21-16.el9_0.x86_64                         perl-DBI-1.643
9.el9.x86_64perl-Math-BigInt-1:1.9998.18-460.el9.noarch                   perl-Math-Complex
1.59-480.el9.noarchperl-Sys-Hostname-1.23-480.el9.x86_64Complete!

5. 启动HTTPD服务

安装好以上相关软件后,我们就可以启动 HTTPD 服务了,执行如下命令来启动:

 [root@localhost yum.repos.d]# systemctl start httpd

执行后,我们可以通过如下命令来查看服务是否成功启动:

 [root@localhost yum.repos.d]# netstat -lntup | grep httpdtcp6       0      0 :::80                   :::*                    LISTEN     39790/httpd

如果能看到如上信息,表示 HTTPD 服务已经成功启动,并监听在 80 端口上。

6. 配置防火墙

由于 Redhat 系统是有防火墙安全服务的,而 HTTP 服务要想客户端能够访问,需要将其添加到防火墙列表中,同时 还需要将 80 端口号也添加到防火墙列表中。可执行如下命令来查看目前的 HTTP 服务和 80 端口是否在防火墙列表中。

 [root@localhost yum.repos.d]# firewall-cmd --list-allpublic (active)target: defaulticmp-block-inversion: nointerfaces: ens160sources: services: cockpit dhcpv6-client sshports: protocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules:

可以发现,并没有在防火墙列表中,我们需要执行如下命令来将 http 服务和 80 端口添加到防火墙列表中。

 # 将 http 服务添加到防火墙中
[root@localhost yum.repos.d]# firewall-cmd --permanent --add-service=httpsuccess# 将 80 端口添加到防火墙中
[root@localhost yum.repos.d]# firewall-cmd --permanent --add-port=80/tcpsuccess# 重新加载防火墙
[root@localhost yum.repos.d]# firewall-cmd --reloadsuccess

再次执行如下命令来查看防火墙列表信息:

 [root@localhost yum.repos.d]# firewall-cmd --list-allpublic (active)target: defaulticmp-block-inversion: nointerfaces: ens160sources: services: cockpit dhcpv6-client http sshports: 80/tcpprotocols: forward: yesmasquerade: noforward-ports: source-ports: icmp-blocks: rich rules:

可以发现,http 服务和 80 端口已经成功添加到了防火墙列表中。 为了防止客户端还可能无法访问服务,我们可以将 selinux 服务关闭。执行如下命令来关闭:

 [root@localhost yum.repos.d]# setenforce 0

7. 启动数据库

接下来我们启动 Mariadb 数据库,执行如下命令:

 [root@localhost yum.repos.d]# systemctl start mariadb.service

8. 配置数据库

当数据库服务启动后,我们需要对其进行配置。

首先执行如下的命令来进入到数据库中:

[root@localhost yum.repos.d]# mysql -uroot -pEnter password:             # 在此处直接回车即可
Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 3Server version: 10.5.16-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]>

说明:新安装的数据库,初始密码为空。因此在输入密码提示处直接回车即可登录成功。

然后创建一个数据库,名称我们取名为 luntan

 # 查看目前的所有数据库信息
MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema |+--------------------+3 rows in set (0.000 sec)# 创建luntan数据库
MariaDB [(none)]> create database luntan;Query OK, 1 row affected (0.000 sec)# 再次查看确认
MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || luntan             || mysql              || performance_schema |+--------------------+4 rows in set (0.000 sec)

接下来我们修改数据库的 root 用户的密码:

 MariaDB [(none)]> alter user 'root'@'localhost' identified by 'redhat123';Query OK, 0 rows affected (0.001 sec)

执行完上面的修改密码语句后,我们执行 exit 命令来退出数据库,然后重新通过用户名和密码来登录数据库

[root@localhost yum.repos.d]# mysql -uroot -predhat123Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 4Server version: 10.5.16-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]>

要选择数据库:

 # 选择数据库
MariaDB [(none)]> use luntan;Database changed# 查看数据库下所有表信息
MariaDB [luntan]> show tables;Empty set (0.000 sec)

9. 安装论坛程序

有了上面的所有环境后,我们就可以通过上传软件将论坛源程序(Discuz_X3.5_SC_UTF8_20230520.zip)文件上传 到 Redhat 系统的 /var/www/html/ 目录下。

 [root@localhost html]# lltotal 11500-rw-r--r--. 1 root root 11775903 Feb 23 16:02 Discuz_X3.5_SC_UTF8_20230520.zip

然后进入到这个目录下:

 [root@localhost yum.repos.d]# cd /var/www/html/[root@localhost html]# 

接着在这个目录下执行如下命令来解压这个文件:

[root@localhost html]# unzip Discuz_X3.5_SC_UTF8_20230520.zip......inflating: upload/uc_server/view/default/pm_nav.htm  inflating: upload/uc_server/view/default/pm_send.htm  inflating: upload/uc_server/view/default/pm_view.htm  inflating: upload/uc_server/view/default/templates.lang.php  inflating: upload/uc_server/view/default/user_avatar.htm  extracting: upload/uc_server/view/index.htm  inflating: utility.html

解压完成后,查看解压的目录:

[root@localhost html]# lltotal 11624-rw-r--r--.  1 root root 11775903 Mar 25 14:56 Discuz_X3.5_SC_UTF8_20230520.zip-rw-r--r--.  1 root root     8181 May 20  2023 LICENSE-rw-r--r--.  1 root root    33294 Dec 21  2022 qqqun.pngdrwxr-xr-x.  2 root root      124 May 20  2023 readme-rw-r--r--.  1 root root    70226 Mar 16  2023 readme.htmldrwxr-xr-x. 12 root root     4096 May 20  2023 upload-rw-r--r--.  1 root root      140 Feb 12  2023 utility.html

最后我们进入到 upload 目录

 [root@localhost html]# cd upload/[root@localhost upload]# 

该目录下所有文件列表如下:

[root@localhost upload]# lltotal 72
-rw-r--r--.  1 root root 2869 May 20  2023 admin.phpdrwxr-xr-x. 10 root root  149 May 20  2023 api
-rw-r--r--.  1 root root  727 May 20  2023 api.phpdrwxr-xr-x.  2 root root   23 May 20  2023 archiverdrwxr-xr-x.  2 root root   90 May 20  2023 config
-rw-r--r--.  1 root root 1040 May 20  2023 connect.php
-rw-r--r--.  1 root root  106 May 20  2023 crossdomain.xmldrwxr-xr-x. 12 root root  178 May 20  2023 data
-rw-r--r--.  1 root root 5558 May 20  2023 favicon.ico
-rw-r--r--.  1 root root 2357 May 20  2023 forum.php
-rw-r--r--.  1 root root  906 May 20  2023 group.php
-rw-r--r--.  1 root root 1325 May 20  2023 home.php
-rw-r--r--.  1 root root 6912 May 20  2023 index.phpdrwxr-xr-x.  5 root root   64 May 20  2023 install
-rw-r--r--.  1 root root  998 May 20  2023 member.php
-rw-r--r--.  1 root root 2410 May 20  2023 misc.php
-rw-r--r--.  1 root root 1790 May 20  2023 plugin.php
-rw-r--r--.  1 root root 1086 May 20  2023 portal.php
-rw-r--r--.  1 root root  639 May 20  2023 robots.txt
-rw-r--r--.  1 root root 1755 May 20  2023 search.phpdrwxr-xr-x. 10 root root  168 May 20  2023 sourcedrwxr-xr-x.  7 root root   86 May 20  2023 staticdrwxr-xr-x.  3 root root   38 May 20  2023 templatedrwxr-xr-x.  8 root root  146 May 20  2023 uc_clientdrwxr-xr-x. 13 root root 4096 May 20  2023 uc_server

10. 配置论坛

打开浏览器并在地址栏中输入:http://192.168.72.128/upload,就会看到如下界面。

注意:请输入你自己服务器的 IP 地址。

点击“同意”按钮来接受许可协议并进入到下一个配置界面。

从页面中可以发现,很多文件和目录的当前状态都是不可写,因此我们需要执行如下命令来为它们设置可操作权限。

 [root@localhost upload]# chmod -R 777 data/ uc_client/ uc_server/ config/

执行完命令后再次刷新页面,可以发现所有的警告信息都没有了。如下图所示:

点击“下一步”按钮进入到下一个配置界面:

在这个界面中采用默认选项即可,然后点击“下一步”按钮。

在这个配置页面中,我们需要填写服务器的地址、数据库名、数据库用户名、数据库密码、管理员密码等信息。前四 个信息我们在第 8 步配置数据库中设置了相关的信息:数据库名为 luntan,数据库用户名为 root,数据库密码为 redhat123。

此处我将管理员密码也设置为redhat123 配置好相应数据库信息后,点击“下一步”按钮后就会开始安装,安装好后的界面如下图所示:

我们可以选择“进入管理后台”,也可以选择“安装插件模板”,还可以选择“直接访问站点”。此处我们选择“直接访问站 点”来进入论坛程序。

五、实验结论

1. 本实验的实施需要具备独立配置仓库和目录挂载能力。

2. 由于涉及到文件权限管理,因此需要对权限管理相关命令有一定了解。

3. 需要有一定的数据库的基本操作能力。

4. 需要有一定的安全管理能力。

5. 通过本实验能够将相关知道串联起来。


http://www.ppmy.cn/server/150834.html

相关文章

浅析明达技术新一代Modbus网关

在工业自动化技术迅猛发展的当下,数据的采集与实时监控已然成为提高生产效率、减少故障率的关键举措。Modbus 作为一种被广泛运用的通信协议,以其开放性、简易性和可靠性,在工业自动化领域占据着举足轻重的地位。而 Modbus 网关作为数据交互的…

2.16、添加响应式数据

2.16.1. 什么是响应式? 修改data后,页面自动改变/刷新。这就是响应式。就像我们在使用excel的时候,修改一个单元格中的数据,其它单元格的数据会联动更新,这也是响应式。 2.16.2. Vue的响应式是如何实现的&#xff1f…

RK3568(二)——字符设备驱动开发

最基础的字符设备驱动开始,重点学习 Linux 下字符设备驱动开发框架。 驱动框架 Linux 应用程序对驱动程序的调用: 在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/de…

10个富士胶片模拟的设置

二色彩 1、色彩的加减控制全局的饱和度增减; 2、色彩效果只提升暖色系饱和度; 3、FX蓝色大幅度提升蓝色系饱和度; 4、三个参数都不改变颜色的色相。 2.1 色彩 色彩调整的是拍摄画面整体的色彩饱和程度 2.2色彩效果 调整的是画面中暖色…

Go 语言新手入门:快速掌握 Go 基础

Go 语言(又叫 Golang)是一种由 Google 开发的开源编程语言,设计初衷是简洁、高效,并且能够处理大规模并发程序。Go 语言自发布以来,逐渐在 Web 开发、云计算、微服务和系统编程等领域获得了广泛应用。它以简单的语法、…

TikTok为何选择矩阵起号?——深入解析短视频运营策略

TikTok为何选择矩阵起号?——深入解析短视频运营策略 随着短视频平台的迅速崛起,TikTok成为全球用户分享和消费内容的重要阵地。对于企业、品牌和内容创作者而言,如何高效地获取流量、扩大影响力并实现变现成为关键问题。在这种背景下&#…

在Ubuntu 2404上使用最新的PicGo

在转向Ubuntu之后,果断下载了今年最新的Ubuntu2404,但是随之而来的是底层组件的更新,很多以前可以畅快使用的软件,因为需要老版本的组件而不能正确运行,PicGo就是如此 我们从这里打开Release列表 其中Ubuntu可用的只有这个AppIma…

UEFI 中的 GUI

字符串 UEFI 中字符串有两种,一种是 Unicode16 编码 的字符串,另一种是 ASCII 字符串。 Unicode16 字符串是 UEFI 默认使用的字符串; ASCII 字符串以 \0 结尾,每个字符占用 1 字节。 L"Hello World" 是 Unicode16 字符…