【VMware教程】RHEL 9虚拟机搭建网盘

📅 2026/7/15 21:47:15 👁️ 阅读次数 📝 编程学习
【VMware教程】RHEL 9虚拟机搭建网盘

一、搭建网盘架构解析

在搭建网盘前,我们需要先认识搭建网盘需要什么,以及各个组件的作用、层级关系。

按图中结构梳理,如上图:

1.Linux虚拟机服务器

整套 Nextcloud 私有网盘,运行在一台Linux 虚拟机服务器里。所有服务、程序、安全组件都依托这台 Linux 系统运行。

(1)Web服务器( 这里使用 httpd )

在Web服务器中,包含三类主流服务程序:httpd、nginx、tomcat:

httpd(Apache):经典通用 Web 服务器,主打稳定兼容、文档资料齐全、对 PHP 和 Nextcloud 适配性极好,适合课程教学、个人私有网盘部署;

nginx:高性能 Web 服务器,优势是高并发、低资源占用,适合大量用户同时访问、大流量商用网站场景;

tomcat:Java 专用应用服务器,主要运行 Java 程序,不能原生运行 PHP 代码,不适合 Nextcloud 网盘架构

本次部署选用httpd,原因是它兼容性好、配置简单、教程完善,适配教学环境和个人网盘使用需求,足够稳定满足基础网盘访问需求。

(2)MariaDB 数据库(mariadb-server)

在 Linux 虚拟机服务器中,还包含独立的 MariaDB 数据库服务。

它专门用来存储网盘元数据,包括用户账号密码、文件夹结构、访问权限、共享链接等信息,不直接存储大体积文件,由 PHP 程序调用读写,负责网盘核心结构化数据的管理。

(3)Nextcloud网盘

在 Linux 虚拟机服务器中,包含 Nextcloud 网盘源码程序,它存放在 httpd 的网站目录里,是实现网盘功能的主体代码。

Nextcloud 本身无法直接独立运行,需要依靠 Web 服务器接收访问请求、依靠 PHP 环境解析执行代码,从而提供完整私有网盘功能。

(4)PHP 运行环境

在 Linux 虚拟机服务器中,包含 PHP 运行环境,它是独立的代码解析环境,用来解析和执行 Nextcloud 的 PHP 源码,实现网盘登录、浏览文件、上传下载、共享文件等核心功能,并且负责和数据库进行数据交互,处理动态数据请求,是 Nextcloud 程序正常运行必不可少的翻译器。

2.Linux 双重要安全防护组件

最左侧,是我们的终端用户,通过浏览器、输入虚拟机 IP 地址来访问网盘,是整个访问链路的起点。

从外到内有两层关键安全防护组件:

第一层是firewalld 防火墙,位于服务器外侧,负责管控整个服务器的网络端口访问,相当于小区大门。默认会拦截大部分端口,我们需要手动放行 80、443 网页端口,让外部浏览器可以正常连通服务器,同时阻挡恶意外部访问。

第二层是SELinux,属于 Linux 内核级安全管控,相当于屋内门锁。它负责管控服务器内部进程和文件夹的权限标签,即使外部通过防火墙连上服务器,也需要配置好 SELinux 上下文,允许 httpd 服务读取 Nextcloud 目录、访问数据库,否则网盘会出现打不开、无法上传文件的问题。

3.完整访问流程

用户通过浏览器发起网盘访问请求 → 首先经过 firewalld 防火墙校验,确认端口放行 → 进入 Linux 服务器后,受 SELinux 权限校验,确认 httpd 具备读写权限 → httpd 接收请求,调用 PHP 环境运行 Nextcloud 代码 → PHP 连接 MariaDB 数据库读取、修改网盘数据 → 最终把网盘页面返回给浏览器,完成访问。

二、本次使用代码

yum install httpd php php-zip php-gd php-mysqlnd mariadb-server -y

#安装相对应的环境(php环境、数据库是mariadb,web服务器是httpd)

systemctl enable httpd mariadb --now#开启httpd和mariadb服务,并且设置开机自启

systemctl disable firewalld --now#关闭防火墙

setenforce 0#临时关闭selinux。如果此时关闭了系统之后又打开就又会显示开启状态。
getenforce#显示为Permissive表示selinux已经关闭了

mysqladmin -uroot password 'root'#设置数据库root用户的密码为root

mysql -uroot -proot#用对应身份,密码登录数据库,show databases;查看

create database nextcloud;#创建一个名为nextcloud的数据库

chown -R apache:apache nextcloud

systemctl restart httpd#重启web服务器

三、教程展示

1.配置yum源

搭建 Nextcloud 网盘,需要一次性安装一堆依赖:httpd(Apache网页服务)、PHP运行环境、php-mysql插件、mariadb数据库 等整套软件包。

配置正确国内 yum 源 ,则yum可一键自动安装并匹配版本,解决软件依赖问题,顺利部署

先输入ping www.baidu,com 检测是否有网,

再输入vim /etc/yum.repos.d/rpm.repo,并插入以下代码:

[base] name=a baseurl=https://mirrors.aliyun.com/rockylinux/9/AppStream/x86_64/os/ gpgcheck=0 [app] name=a baseurl=https://mirrors.aliyun.com/rockylinux/9/BaseOS/x86_64/os/ gpgcheck=0

检查(代码对应,网址是否可跳转)

2.安装对应环境

php环境、数据库是mariadb,web服务器是httpd

yum install httpd php php-zip php-gd php-mysqlnd mariadb-server -y

3.开启httpd和mariadb服务,并且设置开机自启

systemctl enable httpd mariadb --now

enable为设置开机自启,now为现在启用(无now为开机自启)

systemctl status httpd 查看服务状态(Q退出)

4、关闭防火墙(不推荐在生产环境使用)

systemctl disable firewalld --now

5.关闭selinux (不推荐在生产环境使用)

setenforce 0 #临时关闭selinux。如果此时关闭了系统之后又打开就又会显示开启状态。
getenforce #显示为Permissive表示已经关闭了

6.创建数据库,名称为nextcloud

mysqladmin -uroot password 'root' #设置数据库root用户的密码为root

(此密码与用户名为数据库并非虚拟机用户密码及用户名)

mysql -uroot -proot #用root身份登录数据库后

show databases;#查看数据库

create database nextcloud;#创建一个名为nextcloud的数据库

exit退出

7.获取网盘压缩包

网址:https://nextcloud.com/install/#install-clients

8.把网盘的压缩包复制到/var/www/html目录中并解压

9.修改/var/www/html目录下的nextcloud目录以及它目录下的文件的所属者和所属组改为apache

httpd外部服所形成的进程的所有者为apache。为了使外部服访问到我们的目录所以修改

10.重启web服务器

通过浏览器查看

11.安装网盘

安装好后,会显示"网页无法访问",此为正常操作,重新输入后访问

搭建完成

12、配置web界面

vim index.html,编入以下代码(将"ghl"改为自己简写)
<html> <head><title>index of ghl</title></head> <body> this is ghl <a href="nextcloud/">nextcloud<a> </html>

此时,用浏览器访问时,可直接使用虚拟机IP访问