如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

2023-10-23

在本教程中,我们将提供有关如何在 Ubuntu 18.04 上设置 Apache 虚拟主机的分步说明。

Apache 虚拟主机允许您在一台计算机上运行多个网站。使用虚拟主机,您可以指定站点文档根目录(包含网站文件的目录)、为每个站点创建单独的安全策略、使用不同的 SSL 证书等等。

尽管本教程是针对 Ubuntu 18.04 Bionic Beaver 编写的,但相同的步骤也适用于 Ubuntu 16.04 Xenial Xerus。

先决条件#

在继续本教程之前,请确保您已满足以下先决条件:

  • 您有一个指向您的公共服务器 IP 的域名。我们将使用example.com.
  • 您已经通过以下方式安装了 Apache这些说明 .
  • 您登录的身份为具有 sudo 权限的用户 .

创建目录结构#

文档根目录是存储和响应请求而提供域名网站文件的目录。您可以将文档根目录设置为您想要的任何位置,在本指南中我们将使用以下目录结构:

/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html
├── domain3.com
│   └── public_html

基本上,我们将为要在服务器上托管的每个域创建一个单独的目录/var/www目录。在每个目录中,我们将创建一个public_html将存储域网站文件的目录。

开始于创建根目录为了example.com domain:

sudo mkdir -p /var/www/example.com/public_html

出于测试目的还创建一个index.html域文档根目录中的文件。

打开编辑器并创建演示文件:

/var/www/example.com/public_html/index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

在本指南中,我们以 sudo 用户身份运行命令,新创建的文件和目录由 root 用户拥有。

为了避免任何权限问题,我们可以改变所有权域文档根目录的 apache 用户(www-data) :

sudo chown -R www-data: /var/www/example.com

创建虚拟主机#

默认情况下,在 Ubuntu 系统上,Apache 虚拟主机配置文件存储在/etc/apache2/sites-available目录,可以通过创建指向该目录的符号链接来启用/etc/apache2/sites-enabled目录。

打开您选择的编辑器并创建以下基本虚拟主机配置文件:

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/public_html

    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
  • ServerName:应与此虚拟主机配置匹配的域。这应该是您的域名。
  • ServerAlias:也应与该虚拟主机匹配的所有其他域,例如www子域。
  • DocumentRoot:Apache 将从中提供域文件的目录。
  • Options: This directive controls which server features are available in a specific directory.
    • -Indexes:阻止目录列表。
    • FollowSymLinks:此选项告诉您的网络服务器遵循符号链接。
  • AllowOverride:指定在其中声明的指令.htaccess文件可以覆盖配置指令。
  • ErrorLog, CustomLog:指定日志文件的位置。

您可以根据需要命名配置文件,但最佳实践是使用域名作为虚拟主机配置文件的名称。

要启用新的虚拟主机文件,我们需要创建从虚拟主机文件到sites-enabled目录,由 apache2 在启动期间读取。

启用虚拟主机的最简单方法是使用a2ensite helper:

sudo a2ensite example.com

另一种选择是手动创建一个符号链接如下所示:

sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/

完成后,使用以下命令测试配置是否存在任何语法错误:

sudo apachectl configtest

如果没有错误,您将看到以下输出:

Syntax OK

重新启动 Apache 服务以使更改生效:

sudo systemctl restart apache2

最后验证一切是否按预期工作,打开http://example.com在您选择的浏览器中,您将看到如下内容:

结论#

您已经学习了如何创建 apache 虚拟主机配置以在单个 Ubuntu 服务器上托管多个域。您可以重复我们上面概述的步骤,并为您的所有域创建其他虚拟主机。

如果您遇到任何问题,请随时发表评论。

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

如何在 Ubuntu 18.04 上设置 Apache 虚拟主机 的相关文章

随机推荐

  • Bash For 循环范围:简单指南

    在 Bash shell 中 for loop使您能够有效地迭代数字或字符序列 当涉及到定义序列时 范围就发挥了作用 本教程重点介绍 Bash 范围创建强大循环的能力 目录 hide 1 使用大括号 进行范围定义 2 基本数字序列 star
  • 网页设计趋势将持续存在

    第一个网站是纯文本网站 今天很难想象会有这样一个网站 第一个同时提供图片和文字的网站于 1993 年上线 blog hubspot com Lindsay Kolowich 2015 年 3 月 这些年来 网页设计取得了很大的发展和进步 为
  • 如何从 CentOS 7.7-7.0 升级 CentOS 7.8

    最新版本 CentOS 7 8 可供升级 所有 CentOS 7 7 7 6 7 5 7 4 7 3 7 2 7 1 和 7 0 用户都可以将系统升级到最新版本 所有使用 WHM cPanel 运行的用户都不需要执行任何操作 WHM cPa
  • 如何在 CentOS/RHEL 8/7/6 上安装 Angular CLI

    Angular是一个框架 库 资产和实用程序 它跟踪所有组件并定期检查其更新 本教程将帮助您在 CentOS 8 7 6 和 RHEL 8 7 6 Linux 操作系统上安装 Angular CLI 工具 第 1 步 安装 Node js
  • 在 Bash 中检查文件是否为空的 5 种方法

    在 Linux 中 空文件是大小为零字节的文件 这意味着该文件不包含任何数据 并且在文本编辑器中打开时没有任何内容 可以使用 touch 命令创建一个空文件 touch myfile txt 这将在当前目录中创建一个名为 myfile tx
  • 如何在 MySQL 中创建管理员用户

    在 MySQL 中管理数据库通常需要使用特权用户或超级管理员用户 他们拥有读取 写入 更新和管理数据库的所有权限 在 MySQL 中 这通常是 root 用户 但建议创建单独的超级管理员用户以实现更好的安全管理 本文将指导您如何在 MySQ
  • 如何在 Fedora 36/35/34 上安装 TeamViewer

    团队查看器是一款功能强大的远程桌面和文件共享应用程序 适用于大多数操作系统和移动设备 为了将 TeamViewer 的使用商业化 您必须购买许可证 您可以免费使用它 仅供个人使用 Teamviewer 的 RPM 包由官方团队构建 可以安装
  • 如何更改 PHP 会话超时

    作为 Web 开发人员 了解 PHP 会话超时对于构建安全可靠的 Web 应用程序至关重要 PHP 会话是一种跨多个页面存储用户信息的方式 会话超时是指会话在过期之前保持活动状态的持续时间 在本分步指南中 我们将引导您完成更改 PHP 会话
  • 如何在 Ubuntu、Debian 和 LinuxMint 上安装 Python 3.7

    在撰写本文时 Python 3 7 系列的最新稳定版本已可供安装 本文将帮助您在 Ubuntu 和 LinuxMint 操作系统上安装 Python 3 7 9 你可以拜访here阅读有关 Python 版本的更多信息 先决条件 保持软件包
  • 如何在 Ubuntu 16.04、14.04 上安装 Nginx、PHP 7 和 MySQL

    PHP 7 2 的最新主要版本已经发布 在速度和安全性方面进行了大量优化 所以你应该尝试这个版本来进行开发 本教程将帮助您在 Ubuntu 17 10 16 04 和 14 04 LTS 版本上安装 Nginx PHP 7 2 和 MySQ
  • 了解 Terraform 语法和配置文件

    Terraform 由 HashiCorp 开发 是一款因其在基础设施即代码 IaC 方面的强大功能而广为人知的工具 本综合指南旨在让您深入了解 Terraform 语法 特别关注配置文件 了解 Terraform 语法 Terraform
  • Fedora 26 发布,新功能及升级步骤

    Fedora 26 发布 最终的 Fedora 26 已发布于2017 年 7 月 11 日 Fedora 26有各种软件升级 安全补丁 该版本将与 GENOME 3 24 一起发布 您可以从以下位置下载 Fedora 26 预发行版 Be
  • 如何重命名 SQL Server 数据库

    Microsoft SQL Server 为您提供了多种重命名数据库的方法 您可以使用 SQL Server Management Studio 或运行 SQL 查询来重命名数据库 在重命名数据库之前 请记住 它可能会中断使用当前数据库名称
  • 如何使用SCP命令安全传输文件

    SCP 安全复制 是一个命令行实用程序 允许您在两个位置之间安全地复制文件和目录 With scp 您可以复制文件或目录 从本地系统到远程系统 从远程系统到本地系统 在本地系统的两个远程系统之间 当传输数据时scp 文件和密码都经过加密 因
  • 如何在 CentOS 7 上安装 VMware Workstation Player

    VMware是一个成熟稳定的虚拟化解决方案 允许您在一台机器上运行多个独立的操作系统 您可以创建自己的虚拟机并评估许多软件供应商作为虚拟设备分发的软件 这些软件可从VMware 解决方案交流 本教程将指导您完成在 CentOS 7 上安装
  • 如何在 Ubuntu 18.04 上安装 Java

    Java 是世界上最流行的编程语言之一 用于构建不同类型的跨平台应用程序 本教程介绍如何在 Ubuntu 18 04 上安装各种版本的 OpenJDK 以及 Oracle Java 相同的说明适用于 Ubuntu 16 04 和任何基于 U
  • 如何在 Ubuntu 18.04 上安装 Apache Cassandra

    Apache Cassandra 是一个免费的开源 NoSQL 数据库 不存在单点故障 它提供线性可扩展性和高可用性 而不会影响性能 Apache Cassandra 被许多组织使用 包括 Apple NetFlix eBay 和 Easo
  • Linux 中的超时命令

    timeout是一个命令行实用程序 它运行指定的命令 并在给定时间段后终止该命令 如果该命令仍在运行 换句话说 timeout允许您运行有时间限制的命令 这timeout命令是 GNU 核心实用程序包的一部分 几乎所有 Linux 发行版上
  • 如何在 CentOS 7 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 在大多数情况下 当在虚拟机上运行 CentOS 时 不存在交换
  • 如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

    在本教程中 我们将提供有关如何在 Ubuntu 18 04 上设置 Apache 虚拟主机的分步说明 Apache 虚拟主机允许您在一台计算机上运行多个网站 使用虚拟主机 您可以指定站点文档根目录 包含网站文件的目录 为每个站点创建单独的安