如何在 Ubuntu 16.04 上使用 Webmin、LAMP、BIND 和 PostFix 安装 Virtualmin

2023-11-08

介绍

Webmin是一个 Web 前端,允许您通过浏览器远程管理服务器。虚拟分钟是Webmin的一个插件,可以通过单个界面简化多个虚拟主机的管理,类似于cPanel or Plesk。使用 Virtualmin,您可以管理用户帐户、Apache 虚拟主机、DNS 条目、MySQL 数据库、邮箱等等。

在本教程中,您将使用脚本来安装免费版本 Virtualmin GPL。该脚本将安装使用 Virtualmin 所需的一切,包括 Webmin 和以下先决条件:

  • 灯堆栈(Apache、PHP 和 MySQL),用于为网站和 Web 应用程序提供服务。
  • BIND,DNS 服务器。
  • PostFix,邮件服务器。

安装 Virtualmin 及其组件后,您将通过其图形界面配置 Webmin 并使用 Virtualmin 创建新的虚拟主机。完成本教程后,您将能够创建任意数量的用户帐户,以便通过浏览器在单个服务器上托管多个域。

Warning:不要在已经运行 Apache、MySQL 和 PHP 的实时生产服务器上遵循本教程,因为这可能会导致数据丢失。使用新服务器并传输您的数据。

先决条件

要完成本教程,您将需要:

  • 一台新的 Ubuntu 16.04 服务器,至少具有 1GB RAM,按以下方式设置Ubuntu 16.04 初始服务器设置指南,包括 sudo 非 root 用户和防火墙。
  • 配置为指向您的服务器的完全限定域名。您可以按照以下步骤了解如何将域名指向 DigitalOcean Droplets如何使用 DigitalOcean 设置主机名教程。
  • Two registered custom nameservers for Virtualmin by following the How To Create Vanity or Branded Nameservers with DigitalOcean Cloud Servers tutorial. Register ns1.your_domain.com and ns2.your_domain.com, where your_domain.com is your domain name.

第 1 步 — 设置主机名和 FQDN

为了使 Virtualmin 正常工作,您需要通过编辑以下内容在服务器本身上配置主机名和 FQDN:/etc/hostname and /etc/hosts文件,以及更新您的 DNS 设置,以便正确解析 DNS 查找。

首先,以非 root 用户身份登录到您的服务器。登录后,更新包数据库:

  1. sudo apt-get update

然后安装任何必要的更新和软件包,以确保您从稳定且最新的系统开始。

  1. sudo apt-get远程升级-y

接下来,更改主机名以匹配您在先决条件中指向服务器的 FQDN。

要检查当前服务器主机名,请运行以下命令:

  1. hostname -f

要更改服务器的主机名,请打开文件/etc/hostname在你的编辑器中:

  1. sudo nano/etc/主机名

删除当前主机名并将其替换为您的主机名:

/etc/主机名
your_hostname

在此文件中仅使用主机名,而不是整个 FQDN。例如,如果您的 FQDN 是virtualmin.example.com, enter virtualmin在这个文件中。

保存文件并退出编辑器。

接下来,将主机名和 FQDN 添加到/etc/hosts file:

sudo nano /etc/hosts

修改以以下内容开头的行127.0.0.1按以下顺序使用您的 FQDN 和主机名:

/etc/主机
127.0.1.1	your_hostname.your_domain.com your_hostname
127.0.0.1	localhost
...

记得更换your_hostname and your_domain.com使用您自己的主机名和域名。保存文件并退出编辑器。

如果您的文件中不存在此行,请添加它以避免与 Ubuntu 系统上的其他软件出现一些兼容性问题。您可以在以下位置了解更多相关信息关于设置主机名的 Debian 官方手册条目.

要检查名称是否已正确更改,请重新启动服务器。

  1. sudo reboot

然后再次 ssh 进入您的服务器。您应该在终端提示符上看到新的主机名。例如:

your_user@your_hostname:~$

Use the hostname命令验证 FQDN 是否设置正确:

hostname -f

您将在输出中看到您的 FQDN:

output
your_hostname.your_domain.com

如果不这样做,请仔细检查对配置所做的更改,更正所有错误,然后重新启动。

接下来,编辑网络配置文件,使其使用该服务器作为 DNS 服务器之一来解析域名。打开配置文件:

  1. sudo nano/etc/network/interfaces.d/50-cloud-init.cfg

添加IP地址127.0.0.1到配置文件。查找以下行:

/etc/network/interfaces.d/50-cloud-init.cfg
dns-nameservers 8.8.8.8 8.8.4.4

将其更改为:

/etc/network/interfaces.d/50-cloud-init.cfg
dns-nameservers 8.8.8.8 8.8.4.4 127.0.0.1

确保前面有空格127.0.0.1。保存文件并退出编辑器。

您已通过设置主机名、FQDN 和网络配置来准备服务器。让我们安装 Virtualmin。

第 2 步 — 安装 Virtualmin

要安装 Virtualmin,请下载并运行官方 Virtualmin 安装脚本,该脚本将安装 Virtualmin 和 Webmin,以及 LAMP 堆栈、BIND 和 Postfix。

Use wget下载脚本:

  1. wgethttps://software.virtualmin.com/gpl/scripts/install.sh

虽然此脚本来自 Virtualmin 官方网站,但您可能需要在编辑器中打开该脚本并在运行之前查看内容。

  1. sudo nano./安装.sh

一旦您对脚本的内容感到满意,就可以使用它来安装 Virtualmin 及其先决条件:

  1. sudo/bin/sh ./install.sh

该脚本将显示有关现有数据和兼容操作系统的警告消息。按y以确认您要继续安装。

该脚本将需要一些时间来完成所有步骤,因为它会安装各种软件包和组件。

脚本完成后,您可以配置 root 密码。

步骤 3 — 配置 Webmin Root 密码

Virtualmin 是 Webmin 的一个附加组件,默认情况下,Webmin 使用该系统rootWeb 界面登录的用户名和密码。如果您使用 SSH 密钥登录服务器,您可能没有系统 root 密码,或者可能不习惯使用它通过浏览器远程登录。让我们告诉 Webmin 为其 Web 界面使用不同的密码。此过程不会更改系统root密码;它只会告诉 Webmin 使用您指定的登录密码。

要更改 Webmin 的 root 密码,请使用以下命令:

  1. sudo /usr/share/webmin/changepass.pl /etc/webmin root yourpassword

Replace yourpassword使用您首选的密码。

接下来,重新启动 Webmin 服务以使更改生效。

  1. sudosystemctl 重新启动 webmin

接下来,我们将使用 Web 前端配置 Webmin。

步骤 4 — 使用安装后向导配置 Webmin

To configure Webmin, we’ll use its web-based Post-Installation Wizard. Open your web browser and navigate to https://your_server_ip:10000. You can also use your fully-qualified domain name to access the site.

Note:由于 Virtualmin 使用自签名证书,您的浏览器可能会显示“您的连接不安全”或“您的连接不是私有的”警告。此警告是正常的。完成本教程后,您可以按照以下步骤添加 Let’s Encrypt SSL 证书Step 2 of the 如何在 Ubuntu 16.04 上安装 Webmin教程。

以以下身份登录root用户使用您在上一步中设置的新更改的密码。

登录后,您将看到介绍屏幕显示您正在执行配置 Virtualmin 的步骤。按Next接着说。

The Introduction screen

On the 内存使用屏幕,选择No for 预加载 Virtualmin 库,因为您不需要一直运行 Virtualmin UI。选择Yes for 运行电子邮件域查找服务器以实现更快的邮件处理。按Next接着说。

On the 病毒扫描屏幕,选择No for 运行 ClamAV 服务器扫描程序所以你会使用更少的内存。按Next接着说。

On the 垃圾邮件过滤屏幕,选择No for 运行 SpamAssassin 服务器过滤器并按Next接着说。

接下来的三个屏幕配置数据库服务器:

  • On the 数据库服务器屏幕,选择Yes to 运行MySQL数据库服务器 and no to 运行 PostgreSQL 数据库服务器. Press Next接着说。
  • On the MySQL密码屏幕上,输入您所需的 MySQL root 密码。它应该与您用于登录 Webmin 的 root 密码不同。
  • On the MySQL 数据库大小屏幕上,选择与您的服务器拥有的 RAM 量相匹配的 RAM 选项。对于 1GB 服务器,选择大量使用 MySQL 的大型系统(1G). Press Next接着说。

接下来,您将看到如下所示的屏幕,要求您输入名称服务器:

DNS zones and nameservers screen

在此输入您在先决条件中配置的主要和辅助名称服务器。如果您还没有设置这些,请检查跳过可解析性检查框以避免出现错误消息并继续。

接下来,关于密码存储方式屏幕,选择存储明文密码如果您必须支持密码恢复。否则,选择仅存储哈希密码。点击后Next,你会看到All done屏幕。点击Next to end.

最后,您将看到 Virtualmin/Webmin 仪表板。

您可能会在顶部看到一条消息,指出 Virtualmin 带有新主题。要激活新主题,请单击切换主题按钮。页面将重新加载,但可能看起来没有样式,因为新主题的 CSS 文件可能无法正确加载。要解决此问题,请手动刷新浏览器。

您可能还会看到一条消息,指出 Virtualmin 的配置尚未检查。点击重新检查并刷新配置按钮来检查您的 Virtualmin 配置。解决检查报告的任何错误。

您的服务器现已配置完毕。让我们使用该界面来创建一个新的虚拟服务器。

第 5 步 — 创建新的虚拟服务器

Virtualmin 可以轻松设置新的虚拟主机以及用户管理这些主机。

单击左侧边栏上的 Virtualmin 选项卡可显示 Virtualmin 边栏菜单。接下来,单击创建虚拟服务器。您将看到以下屏幕:

New virtual host settings

在出现的表格中,输入以下内容:

  • For 域名,输入您计划用于新虚拟服务器的域名。
  • For 描述,输入服务器的适当描述。
  • For 管理密码,输入您将用于管理此虚拟服务器的密码。它应该与您将使用的其他密码不同。

将所有其他选项保留为默认值。

Click 创建服务器创建新的虚拟服务器。当 Virtualmin 为您创建各种组件时,屏幕将显示输出。

您刚刚使用 Virtualmin 创建了一个新的虚拟服务器,以及一个可以管理该服务器的用户。用户名将显示在输出中,密码将是您设置的密码。您可以将该用户名和密码提供给其他用户,以便他们可以通过 Virtualmin 自己管理虚拟服务器。

要注销 Virtualmin,请单击左侧边栏底部的红色退出箭头图标。

结论

在本教程中,您配置了 VirtualMin 并使用其界面创建虚拟服务器和该服务器的新管理用户。

要了解有关 Virtualmin 的更多信息,请查看Virtualmin 官方文档。别忘了熟悉一下Webmin 文档,因为您可以使用 Webmin 来管理服务、安装更新以及执行其他系统管理任务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 16.04 上使用 Webmin、LAMP、BIND 和 PostFix 安装 Virtualmin 的相关文章

  • 在评论中查找不同风格的日期

    我还有一个问题要问preg match 我有一个表 其中评论的日期写在评论本身内 手动 现在我需要提取该日期并将其放置在不同的列中 我发现评论和日期的样式如下 id warning sent warning date 6109 2011 0
  • 如何读取 sql 查询到 pandas dataframe / python / django

    我在下面使用这个views py获取应用程序 from django db import connection def test request cursor connection cursor sql SELECT x n from ta
  • 选择列表包含非聚合列

    自从更新 MySQL 以来 我注意到以下查询失败 SELECT u p name as plan COUNT u id as totalprojects FROM users u LEFT JOIN plans p ON p id acce
  • CNAME 记录也转发 MX 请求吗?

    我的 DNS 设置为包含 A 和 MX 记录的域 base com 还有其他几个域设置了 CNAME 记录 指向 base com 我是否需要为 CNAME 域设置任何特殊内容 例如额外的 MX 记录 或者 CNAME 记录还会转发任何 M
  • 如何在函数内部使用 require_once [重复]

    这个问题在这里已经有答案了 你好 我想在函数内使用 require once 但不起作用 实际上我的页面中有三个函数我该怎么做 它在外面工作但不在函数内部 请问有谁吗 这是我的代码
  • PHP 7.0和MySQL启动错误“未定义符号:mysqlnd_allocator in Unknown”

    即使在运行时 在自定义编译版本的 PHP7 上也会收到此警告php v 尝试了发布的所有解决方案 什么可能导致这种情况 PHP 警告 PHP 启动 无法加载动态库 usr lib php 20151012 pdo mysql so usr
  • 多人/单人测验游戏的数据库设计

    我在这里看到了很多问题 但没有人适合我的问题 我正在尝试创建一个可扩展的 ER 模型 如果我想添加更多数据 则不会破坏几乎任何东西 所以我尝试创建的是 有两种类型的用户 比如说管理员和工作人员 他们有不同的角色 管理员可以对问题进行 CRU
  • 如何更改Linux服务器中的MySQL表名不区分大小写?

    我正在开发一个旧网站 该网站曾经托管在 Apple 服务器上 当它迁移到新的 Linux 服务器时 它停止工作 我很确定这是因为 php 脚本中使用的所有 MySQL 查询对于表名都有不同的大小写组合 我不知道为什么原始开发人员在创建表名或
  • MySQL 将日期时间转换为unix时间?

    我有一个 DATETIME 格式的列 我想将其转换为数据库中的 UNIXTIME 那会是什么样的查询 我知道如何从 UNIXTIME 转换为 DATETIME 但我从未做过相反的操作 我用过FROM UNIXTIME 没有TO UNIXTI
  • 动态表单字段验证的数据库设计

    在我的应用程序中 我允许用户创建一个包含他们想要的任何 HTML 表单字段 例如文本输入 文本区域 选择等 的表单 我想让用户能够为每个字段定义 0 个或多个累积验证规则 最多可能有 25 个不同的验证规则 我应该如何建模 这是一个潜在的解
  • UTF-8、PHP 和 XML Mysql

    我在解决这个问题时遇到了很大的问题 我有一个编码 latin1 swedish ci 的 mysql 数据库和一个存储名称和地址的表 我正在尝试输出 UTF 8 XML 文件 但在使用以下字符串时遇到问题 Otiv gen它被输出为Otiv
  • MySQL 启动错误 - 根元素丢失

    我在 Windows Server 2003 R2 上安装 MySQL 大约两个月了 启动时 我们会看到一个错误 显示 高严重性错误 根元素丢失 然后是另一个高严重性错误 显示 在调用 WriteToLog 方法之前必须定义日志文件路径 任
  • 如何将UTF-8编码的汉字从MySql正确导出到SQL

    过去三天我们正在与严重的问题作斗争 我们从PhpmyAdmin导出MySql数据库文件 数据库条目中写入的数据是带有UTF 8字符集的中文 导出后将其转换为拉丁字符集 现在我们正在将此数据库SQl文件导入到其他主机 我们在UTF 8和排序规
  • MySQL - 查找与连接表中的所有行匹配的行

    表 1 曲目 表 2 词汇表 表 3 N M 轨道有单词 trackwords 找到包含所有单词的所有曲目 目前查询如下 SELECT DISTINCT t id FROM track as t Left Join trackwords a
  • 新行分隔符不适用于 group_concat 函数

    我有一根绳子 name lastname name2 lastname2 包含数据库表中的值 我想显示它 喜欢 name lastname name2 lastname2 我使用 group concat 函数 它适用于逗号分隔符 但我需要
  • 在 Bluemix 中激活 PHP 扩展

    这纯粹是 Bluemix 问题 我的代码在本地主机上顺利运行 但是当我将其迁移到 Bluemix 时 我的数据库连接失败了 检查日志 我发现问题 调用未定义的函数 mysqli init HTTP 响应 500 我发现扩展已被禁用以使其更小
  • 在 Ubuntu 上通过 Apache Web 服务器和 DAV 启用 Subversion 访问

    我的家庭网络上有一台运行 Ubuntu 20 的 PC 我想将其用作我家本地网络中的 Subversion 服务器 我安装了 Apache Web 服务器并安装了 Subversion 现在我想使用 HTTP DAV 协议通过 Apache
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • InnoDB如何存储字符列?

    这个问题仅解决 短 的问题CHAR and VARCHAR列存储在 InnoDB 表中 Does a CHAR 10 列正好占用 10 个字节吗 尾随空格会发生什么情况 对于每个字符需要超过 1 个字节的字符集怎么办 如何VARCHAR 1
  • Elastic Beanstalk 上的 Django + MySQL - 查询 MySQL 时出错

    当我在 Elastic beanstalk 上托管的 Django 应用程序上查询 MySQL 时 出现错误 错误说 admin login 处出现操作错误 1045 用户 adminDB 172 30 23 5 的访问被拒绝 使用密码 Y

随机推荐

  • 如何在 Ubuntu 18.04 上安装 PyCharm

    PyCharm是一个功能齐全的 IDEPython和网络开发 它具有内置的调试支持 Docker and Vagrant支持 嵌入式Git控制 Anaconda支持 语法高亮 代码完成 ssh终端 代码重构和丰富的导航功能 PyCharm
  • Linux 中的 apt 命令

    apt是一个命令行实用程序 用于在 Ubuntu Debian 和相关 Linux 发行版上安装 更新 删除和以其他方式管理 deb 软件包 它结合了最常用的命令apt get and apt cache某些选项的默认值不同的工具 apt专
  • 如何在 Debian 10 上安装 CouchDB

    Apache CouchDB 是由 Apache 软件基金会开发的免费开源 NoSQL 数据库 它可以用作单节点或集群数据库 CouchDB 服务器将其数据存储在命名数据库中 其中包含具有以下内容的文档JSON结构 每个文档由许多字段和附件
  • ​如何将 Debian 9 Stretch 升级到 Debian 10 Buster

    经过两年多的开发 新的 Debian 稳定版本 代号 Buster 的 Debian 10 于 2019 年 7 月 6 日发布 并将支持 5 年 此版本附带了大量新软件包和主要软件升级 Debian 10 buster 附带 Linux
  • 如何在 CentOS 8 上安装 GCC(开发工具)

    GNU 编译器集合 GCC 是 C C Objective C Fortran Ada Go D 编程语言 很多开源项目 包括Linux内核和GNU工具 都是使用GCC编译的 本文介绍如何在 CentOS 8 上安装 GCC 在 CentO
  • 你应该知道的 Nginx 命令

    Nginx 发音为 engine x 是一个免费 开源 高性能的 HTTP 和反向代理服务器 负责处理互联网上一些最大网站的负载 它可以用作独立的 Web 服务器 也可以用作反向代理适用于 Apache 和其他 Web 服务器 如果您是开发
  • 如何在 Linux 中挂载和卸载文件系统

    在 Linux 和 UNIX 操作系统上 您可以使用mount用于在目录树中的特定安装点附加 安装 文件系统和可移动设备 例如 USB 闪存驱动器 的命令 The umount命令从目录树中分离 卸载 已安装的文件系统 在本教程中 我们将介
  • 如何在 JavaScript 中使用 Switch 语句

    介绍 条件语句是所有编程语言中最有用和最常见的功能之一 如何在 JavaScript 中编写条件语句描述了如何使用if else and else if关键字根据不同的条件控制程序的流程 在 JavaScript 中通常是用户输入的结果 此
  • 如何生成带校验和的资源标识符

    作者选择了免费开源基金接受捐赠作为为捐款而写程序 介绍 唯一标识符 UID 或身份标识 可以是字符串值或整数 API 开发人员经常使用它们来寻址 API 中的唯一资源 然后 API 使用者使用这些标识符从资源集合中获取单个资源 如果没有唯一
  • 如何在 Debian 11 上安装和使用 Composer

    介绍 Composer是一个流行的 PHP 依赖管理工具 创建主要是为了方便项目依赖的安装和更新 Composer 的工作原理是检查特定项目所依赖的其他软件包 然后根据项目需求使用适当的版本为您安装它们 Composer 还常用于引导基于流
  • 如何编写您的第一个 Ruby 程序

    介绍 你好 世界 程序是计算机编程中经典且历史悠久的传统 对于初学者来说 这是一个小而完整的第一个程序 并且是确保正确配置环境的好方法 本教程将引导您完成用 Ruby 创建该程序 但是 为了使程序更有趣 您将修改传统的 Hello Worl
  • Java 中的矩阵程序

    矩阵是一个矩形数组 元素按行和列排列 在本教程中 我们将了解一些 Java 矩阵程序 矩阵的图形表示 Matrix Java 中的矩阵 我们可以使用矩阵来实现Java中的二维数组 可以使用索引 array r c 访问行 r 和列 c 的元
  • 什么是平衡二叉树以及如何检查它?

    对于二叉树 如果树是倾斜的 那么执行操作时计算效率就会降低 这就是确保树木不倾斜的动机 因此需要平衡二叉树 什么是平衡二叉树 平衡二叉树在计算上执行操作是高效的 平衡二叉树将遵循以下条件 任意节点左右子树高度差的绝对值小于1 对于每个节点
  • Java 15 特性

    保持六个月周期的传统 发布后Java 142020 年 3 月 17 日 我们现在有了 Java 15 下一个非 LTS 版本将于 2020 年 9 月 15 日推出 Java 15 特性 下面快速浏览一下 Java 15 的功能 密封课程
  • 如何在 Debian 11 上设置 NFS 挂载

    介绍 NFS 网络文件系统 是一种分布式文件系统协议 允许您在服务器上挂载远程目录 这允许您管理不同位置的存储空间并从多个客户端写入该空间 NFS 提供了一种相对标准且高性能的方式来通过网络访问远程系统 并且在必须定期访问共享资源的情况下运
  • Log4j 级别示例 - 顺序、优先级、自定义过滤器

    如果您使用过 log4j 您会注意到有很多方法来记录消息 例如 logger trace My Log message logger debug My Log message logger info My Log message 实际上它们
  • 如何在 Ubuntu 12.04 LTS 上设置 Apache 虚拟主机

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • json-简单示例

    json simple 是一个简单的 JSON java 工具包 json simple 库完全符合 JSON 规范 RFC4627 json 简单 json simple uses Map and List internally for
  • 如何在R中使用sample()获取样本?

    让我们了解 R 中最常用的函数之一 sample 在数据分析中 对数据进行采样是分析师最常见的过程 要研究和理解数据 有时采样是最好的方法 对于大数据来说尤其如此 R 提供标准函数sample 来从数据集中获取样本 许多业务和数据分析问题都
  • 如何在 Ubuntu 16.04 上使用 Webmin、LAMP、BIND 和 PostFix 安装 Virtualmin

    介绍 Webmin是一个 Web 前端 允许您通过浏览器远程管理服务器 虚拟分钟是Webmin的一个插件 可以通过单个界面简化多个虚拟主机的管理 类似于cPanel or Plesk 使用 Virtualmin 您可以管理用户帐户 Apac