如何在 VPS 上安装和使用 VirtualMin

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDSClaw,2核4GB
RDS AI 助手,专业版
简介: 如何在 VPS 上安装和使用 VirtualMin

关于 Virtualmin

Virtualmin 是 Webmin 的一个模块,允许对(多个)虚拟专用服务器进行广泛的管理。您将能够管理 Apache、Nginx、PHP、DNS、MySQL、PostgreSQL、邮箱、FTP、SSH、SSL、Subversion/Git 仓库等等。

在本教程中,我们将在一个新创建的 VPS(droplet)上安装 Virtualmin 的 GPL(免费)版本。

先决条件

  • Virtualmin 强烈建议使用全新安装的服务器以防止冲突,假设您刚刚创建了一个新的 VPS,这应该没问题。
  • 确认您的 VPS 已经设置了完全合格的域名作为主机名。一个完全合格的域名的示例是 “myserver.example.com” 或 “example.com”。
    确保域名指向您的服务器的 IP 地址。
    使用以下命令检查当前主机名。
hostname -f
  • 如果需要,使用以下命令更改主机名。
hostname myserver.example.com

以 Root 身份登录

从 DigitalOcean 控制面板获取您的 droplet 的 IP 地址,并使用 SSH 以 root 身份登录。

ssh root@123.45.67.89

下载安装脚本

Virtualmin 提供了一个安装脚本,可以方便地进行安装。使用以下命令将脚本下载到您的根目录。

wget http://software.virtualmin.com/gpl/scripts/install.sh -O /root/virtualmin-install.sh

下载完成后,您应该看到类似以下内容:

2013-07-06 11:03:57 (129 KB/s) - `/root/virtualmin-install.sh' saved [45392/45392]

运行安装脚本

现在是时候运行我们刚刚下载的脚本了。

sh /root/virtualmin-install.sh

这将启动安装向导。它将从一个简短的免责声明开始,接受后安装将开始。

访问 Virtualmin

安装脚本完成安装后,您可以使用以下 URL 访问 Virtualmin:

https://myserver.example.com:10000/

在那里,您可以使用 root 用户名和密码登录。一旦登录,“后安装向导” 将开始配置您的 Virtualmin 安装。

后安装向导

这个向导非常简单易懂,我们将覆盖一些步骤并提供一些额外信息。

内存使用

  • 预加载 Virtualmin 库?
    当您要广泛使用 UI 时,这将使您的 Virtualmin UI 更快,如果不使用也可以很好地使用 UI。
  • 运行电子邮件域查找服务器?
    如果快速电子邮件对您很重要,并且您有多余的 RAM,建议启用此选项。

病毒扫描

  • 运行 ClamAV 服务器扫描器?
    如果您的服务器接收大量电子邮件,则建议启用它。

注意:

如果您在 512MB VPS 上安装 Virtualmin,并且在上一步中刚刚启用了 ClamAV 服务器扫描器,那么很可能会遇到以下错误:

A problem occurred testing the ClamAV server scanner :
ERROR: Can't connect to clamd: No such file or directory
----------- SCAN SUMMARY -----------
Infected files: 0
Time: 0.000 sec (0 m 0 s)

您之所以会收到此错误是因为您的 VPS 内存不足… 您可以选择升级您的 RAM 或添加交换空间来处理增加的内存使用。

有关交换空间及如何启用它的更多信息,请参阅此教程:https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04。

垃圾邮件过滤

  • 运行 SpamAssassin 服务器过滤器?
    同样,在页面上已经很好地解释了这一点,如果您的服务器接收大量电子邮件,则建议启用它。

数据库服务器

这一步应该很清楚,假设您知道 MySQL 或 PostgreSQL 是什么。启用您需要的数据库服务器。

如果选择了 MySQL,则下一步将要求您为 MySQL 服务器输入 root 密码。之后的步骤会询问 MySQL 应该使用哪种配置。

建议选择与您的 RAM 匹配的配置(我相信它默认选择正确的配置)。

DNS 区域

如果您计划使用 Virtualmin 管理您的 DNS 区域,则在此处输入您的主要和次要域名服务器。

密码

Virtualmin 给您两个选择来保存密码。强烈建议选择 “仅存储哈希密码”。

这样,如果有任何不速之客进入您的服务器,他们将无法检索到任何个人密码。

好了,您已经完成了后安装向导!您可能会在页面顶部看到一个大黄条,上面有一个按钮,上面写着 “重新检查和刷新配置”。

建议按下该按钮,以确保一切都正常。

如果在检查过程中出现错误,请按照说明解决错误并重新检查您的配置,直到所有错误消失。

一些有用的知识

以下是一些信息,将帮助您了解 Virtualmin:

虚拟专用服务器

虚拟专用服务器(通常)代表一个网站,通常每个网站都有自己的虚拟专用服务器。

子服务器

子服务器听起来很令人困惑,但基本上是一个子域。

Virtualmin vs Webmin

正如您在左上角所看到的,您有 Virtualmin 和 Webmin。这些是不同的控制面板,Virtualmin 是您管理所有 VPS 和与此相关的任何内容的地方。Webmin 是您管理服务器本身的地方。

文档

Virtualmin 的文档非常完善,这意味着每个页面都有自己的帮助页面,每个选项的标签(输入字段前面的标签)都链接到该选项的解释。

以下是解释 Virtualmin 菜单结构的屏幕截图。

设置虚拟专用服务器

现在我们已经完成了安装和向导,我们可以开始设置我们的虚拟专用服务器。在左侧导航中点击 “创建虚拟服务器”。

输入您要为其设置服务器的域名,在本教程中我们将使用:example.com。

输入一个管理密码,这将成为管理虚拟专用服务器的主要密码。如果您自己管理虚拟专用服务器,则实际上不需要知道此密码。在这种情况下,建议使用一个生成的长密码以增强安全性。

Virtualmin 允许您管理服务器配置模板和帐户计划,这些可以在 “系统设置” 下的 “服务器模板” 和 “帐户计划” 下进行修改。

您可以指定一个管理用户名,将其保持自动将使 “example” 成为用户名。

查看其他选项隐藏在其他选项卡下,并启用/禁用/更改任何您想要配置虚拟专用服务器的内容。

现在点击 “创建服务器”,Virtualmin 将执行设置虚拟专用服务器所需的步骤,如果出现任何错误,它将在那里显示它们。

设置子域

现在我们已经设置了虚拟专用服务器,是时候添加一个子域了,再次点击 “创建虚拟服务器”。

注意页面顶部现在有不同的选项:“顶级服务器”(虚拟专用服务器)、“子服务器”(子域)、“别名 example.com” 和 “别名 example.com,带有自己的电子邮件”。

点击 “子服务器” 来创建 “test.example.com” 的子域。

填写完整的域名(test.example.com)并浏览下面的选项,一旦准备好,点击 “创建服务器”。

观看 Virtualmin 完成其需要做的工作,完成后,您应该看到 “test.example.com” 作为当前选择的虚拟专用服务器。

设置用户

首先,让我们确保我们在顶级服务器 “example.com” 上,然后点击 “编辑用户”。在顶部,您会看到有三个选项可以创建用户:“向此服务器添加用户。”、“批量创建用户。” 和 “添加网站 FTP 访问用户。”

如果您只想设置具有 FTP 访问权限的用户,则点击该链接,我们将选择 “向此服务器添加用户。”。第一步是输入用户的电子邮件地址、真实姓名和密码。然后,仔细查看其他可用选项,以获得您理想的设置,完成后点击 “创建”。

现在您将看到您的用户被添加到列表中,主用户是粗体。它还会告诉您用户的登录名(默认情况下,这是类似 test.example)。

有关进一步设置电子邮件地址,请参阅菜单中的 “编辑邮件别名” 链接。

设置您的数据库

点击菜单中的 “编辑数据库” 链接,记得正确设置您的虚拟专用服务器。根据您的设置,每个虚拟专用服务器都有自己的数据库(或多个)。

每个数据库都有一个 “管理…” 链接,它为您提供了一个非常简单的数据库视图,并允许您执行查询。现在返回到 “编辑数据库” 页面,点击 “密码”,这里是 Virtualmin 自动生成的数据库密码。

继续到 “导入数据库” 选项卡,您可以将现有数据库(在 Virtualmin 外部创建的数据库)分配给当前虚拟专用服务器,这对于使用某种形式的 MySQL 客户端创建数据库时非常有用。

最后但并非最不重要的是,“远程主机” 选项卡允许您提供多个主机以连接到您的服务器,建议将其保持不变(localhost),并使用 SSH 隧道登录到您的数据库服务器。

目录结构

Virtualmin 有一个非常好组织的目录结构。请参阅以下结构。

`-- /home/example
    |-- /home/example/awstats
    |-- /home/example/cgi-bin
    |-- /home/example/domains
    |   `-- /home/example/domains/test.example.com
    |       |-- /home/example/domains/test.example.com/awstats
    |       |-- /home/example/domains/test.example.com/cgi-bin
    |       |-- /home/example/domains/test.example.com/homes
    |       |-- /home/example/domains/test.example.com/logs
    |       `-- /home/example/domains/test.example.com/public_html
    |           `-- /home/example/domains/test.example.com/public_html/stats
    |-- /home/example/etc
    |   `-- /home/example/etc/php5
    |-- /home/example/fcgi-bin
    |-- /home/example/homes
    |   `-- /home/example/homes/test
    |       `-- /home/example/homes/test/Maildir
    |           |-- /home/example/homes/test/Maildir/cur
    |           |-- /home/example/homes/test/Maildir/new
    |           `-- /home/example/homes/test/Maildir/tmp
    |-- /home/example/logs
    |-- /home/example/public_html
    |   `-- /home/example/public_html/stats
    `-- /home/example/tmp

如您所见,所有内容都放在 /home/example 中,我们的子域可以在 /home/example/domains/test.example.com/ 中找到。每个域都有自己的日志目录,默认情况下,Virtualmin 自带 awstats,并且可以通过 “www.example.com/stats” 访问,除非您在创建虚拟专用服务器时禁用了此功能。

接下来该做什么?

花些时间浏览 Virtualmin 的设置。有许多可以更改以使您的体验更好的东西。不要忘记探索此控制面板的 Webmin 部分。

本教程只是触及了 Virtualmin 的表面,还有很多可以通过模块添加到其中或与之一起完成的工作。甚至还有用于设置 svn/git 仓库的模块。


目录
相关文章
|
Rust JavaScript Unix
Nodejs 常见版本管理工具(nvm、n、fnm、nvs、nodenv)
Nodejs 常见版本管理工具(nvm、n、fnm、nvs、nodenv)
14016 0
|
3月前
|
JSON API 网络架构
什么是API?API有哪些类型?
本文深入浅出地讲解API的概念、类型及应用。API即应用程序接口,是软件间通信的桥梁。文章从开放、内部、合作伙伴API等分类入手,解析REST、SOAP、GraphQL等技术类型,并探讨其在数据与功能调用中的作用,帮助读者全面理解现代数字服务的底层逻辑。
8848 10
|
弹性计算 安全 Ubuntu
快速部署 Virtualmin 社区版
Virtualmin 是专为 Linux 系统设计的领先且最复杂的网络托管控制面板。本文介绍如何使用计算巢快速部署 Virtualmin 社区版。
快速部署 Virtualmin 社区版
|
9月前
|
数据采集 人工智能 自然语言处理
通义灵码支持 Qwen3-Coder,带你玩转 Agentic Coding,免费不限量
欢迎大家在通义灵码里免费体验最新 Qwen3-Coder 模型,一起 AI Coding。
|
JavaScript 前端开发 Java
实现函数的柯里化
本文介绍了在JavaScript、Python和Java三种编程语言中实现函数柯里化的具体方法。JavaScript通过自定义`curry`函数实现,Python利用`functools.partial`简化过程,而Java则通过定义辅助函数达成目的。每种语言的实现细节虽有差异,但均能有效支持函数的分步参数传递与调用。
|
8月前
|
弹性计算 测试技术 网络安全
阿里云38元的轻量应用服务器2核2G200M带宽是什么意思?是不是独享的?
2025年,阿里云轻量应用服务器通用型升级,面向网站建设、开发测试、小型应用等轻量应用场景,推出通用型轻量应用服务器,支持网络默认200Mbps峰值带宽,包含一个IPv4固定公网地址,加量不加价。那么这个200M带宽是什么意思呢?是不是独享的呢?其实,峰值200M就是指带宽上限是200M,并非是固定独享的200M,实际使用时可能达不到200M的意思。不过好在价格确实非常优惠,而且不限制流量。
2258 1
|
前端开发 Java 程序员
2025年了,PHP 还是“世界上最好的语言”吗?
“PHP是全世界最好的语言”源自2001年PHP官方文档,本为积极评价,后因PHP性能、安全等问题成为技术圈知名梗。Ruby调侃自己是程序员最好的朋友,其他语言如Go、Java、Python则低调介绍优势。前端CSS预处理语言Sass高调自称最成熟强大,Less则低调表示仅比CSS多一点。2025年TIOBE指数显示,PHP已跌至13名,Python位居第一。尽管PHP难回巅峰,但其早期辉煌仍值得怀念。
1014 3
|
Java Linux Maven
用sdkman在linux上管理多个java版本
本文介绍了如何在Linux上使用SDKMAN来管理多个Java版本,包括安装SDKMAN、验证安装、列出和安装不同版本的JDK、Maven和Gradle,以及如何切换使用不同版本。
1582 0
|
安全 网络协议 Linux
在CentOS 7上安装和使用Webmin的方法
在CentOS 7上安装和使用Webmin的方法
572 0