如何在 Ubuntu 20.04 上设置 Apache 虚拟主机
admin
2023-08-01 10:59:53
0

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

先决条件

在继续学习教程之前,请确保您已满足以下要求:

  • 指向公共服务器 IP 的一个或多个域名。
  • 在 Ubuntu 系统上安装的 Apache。
  • 您以 root 或用户状态登录,具有 sudo 权限。

创建目录结构

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

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

复制

服务器上托管的每个域都将其文档根设置为 。/var/www//public_html

首先为域创建根目录:

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

 

我们还将在域文档根目录中创建一个文件,当您在浏览器中访问域时将显示该文件:index.html

/var/www/domain1.com/public_html/index.html



  
    
    Welcome to domain1.com
  
  
    

Success! domain1.com home page!

复制

Since the commands above are executed as a sudo user, the newly created files and directories are owned by root. To avoid any permission issues change the ownership of the domain document root directory and all files within the directory to the apache user () :www-data

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

创建虚拟主机

在 Ubuntu 系统上,Apache 虚拟主机配置文件位于目录中。可以通过创建指向目录的符号链接来启用它们,Apache 在启动期间读取该链接。/etc/apache2/sites-available/etc/apache2/sites-enabled

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

/etc/apache2/站点可用/域 1.com.conf


    ServerName domain1.com
    ServerAlias www.domain1.com
    ServerAdmin webmaster@domain1.com
    DocumentRoot /var/www/domain1.com/public_html

    
        Options -Indexes +FollowSymLinks
        AllowOverride All
    

    ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined

复制

  • ServerName:此虚拟主机配置应匹配地域。这应该是您的域名。
  • ServerAlias:应匹配此虚拟主机(如子域)的所有其他域或子域。www
  • DocumentRoot:Apache 将从中为域文件服务的目录。
  • Options:此指令控制特定目录中可用的服务器功能。-Indexes:防止目录列表。FollowSymLinks:启用此选项后,Apache 将遵循符号链接。
  • AllowOverride:指定文件中声明的指令可以覆盖配置指令。.htaccess
  • ErrorLog,:指定日志文件的位置。CustomLog

您可以设置配置文件的名称,但最佳做法是使用域名作为虚拟主机配置文件的名称。

若要启用新的虚拟主机文件,请使用创建从虚拟主机文件到目录的符号链接的帮助器脚本:a2ensitesites-enabled

sudo a2ensite domain1.com

复制

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

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

完成后,使用以下方法测试配置是否出现任何语法错误:

sudo apachectl configtest

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

Syntax OK

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

sudo systemctl restart apache2

 

要验证一切是否正常工作,请打开您的浏览器,您将看到页面的内容:http://domain1.comindex.html

get-188get-188

 

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
iPhone 屏幕上有亮绿色斑... iPhone 是市场上最稳定的智能手机之一,这主要归功于专为它们设计的 iOS 操作系统。然而,他们...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
QQ浏览器怎么制作简历 QQ浏览器是腾讯公司开发的一款极速浏览器,支持电脑,安卓,苹果等多种终端;更快的浏览体验,更安全的浏...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
Apple Watch Ult... 所有运行 watchOS 7 或更高版本的 Apple Watch 型号都包含一项名为“优化电池充电...
统信UOS每次开机后不直接进入... 统信UOS每次开机后不直接进入系统而是进入到recovery模式 按方向上键选择UOS 20 SP1...