专栏首页ITCoder如何在 Ubuntu 20.04 上设置 Apache 虚拟主机

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

文章目录

  • 一、前提
  • 二、创建目录结构
  • 三、创建虚拟主机
  • 四、总结

一个虚拟主机是一段 Apache 配置指令,它允许你在一台单独的服务器上运行一个或者多个指令。通过 虚拟主机,你可以指定网站根目录(托管网站文件),每个网站创建一个独立的安全策略,使用不同的 SSL 证书,等等。

本文描述如何在 Ubuntu 20.04 上 设置 Apache 虚拟主机。

一、前提

在继续下面的指南之前,确保你满足下面的必要条件:

  • 指向公网服务器 IP 的一个或者多个域名
  • 在你的 Ubuntu 系统上安装 Apache
  • 以 root 或者其他 sudo 用户身份登录

二、创建目录结构

文件根目录是域名所对应的网站文件存储的地方,以及响应网站请求的地方。你可以将网站根目录设置成任何你想要设置的位置,在这个例子中,我们将会使用下面的目录结构:

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

每一个托管的域名,它的域名根目录都被设置为/var/www/<domain_name>/public_html

开始为域名创建根目录:

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

我们将会在域名根目录下创建一个index.html文件,它将在你浏览器浏览域名的时候,展示出来: /var/www/domain1.com/public_html/index.html

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

因为上面的命令是以一个 sudo 用户身份执行,新创建的文件和目录都是归属于 root。想要避免任何权限问题,修改域名根目录和该目录下的所有文件到 apache 用户(www-data):

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

三、创建虚拟主机

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

打开你选择的文本编辑器,并且创建下面的虚拟主机配置文件: /etc/apache2/sites-available/domain1.com.conf

<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    ServerAdmin webmaster@domain1.com
    DocumentRoot /var/www/domain1.com/public_html

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

    ErrorLog ${APACHE_LOG_DIR}/domain1.com-error.log
    CustomLog ${APACHE_LOG_DIR}/domain1.com-access.log combined
</VirtualHost>
  • ServerName: 虚拟主机匹配的域名。这可能是你的域名。
  • ServerAlias: 匹配这个虚拟主机的其他域名或者子域名,例如www子域名。
  • DocumentRoot: Apache 网站根目录
  • Options: 指令控制指定目录的服务器特性
    • -Indexes: 防止目录列表
    • FollowSymLinks: 当启用该选项时,Apache 将会允许访问符号链接文件
  • AllowOverride: 指定.htaccess文件中的哪个指令可以覆盖配置文件中的指令。
  • ErrorLog, CustomLog:指定日志文件的位置。

你可以按照自己的喜好来命名配置文件的名称,但是最佳实践就是将域名的名字作为虚拟主机配置文件的名字。

想要启用新的虚拟主机文件,使用a2ensite帮助脚本来创建虚拟主机文件到sites-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.com,你可以看到index.html页面。

四、总结

你已经学会了如何在一个 Ubuntu 服务器上创建一个 apache 虚拟主机配置 来托管多个域名。

重复上面的步骤,可以为所有域名创建其他的虚拟主机。

原文 :https://linuxize.com/post/how-to-set-up-apache-virtual-hosts-on-ubuntu-20-04/

    版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

    Apache Web服务器是在互联网上提供Web内容的最流行方式。它占互联网上所有活跃网站的一半以上,并且非常强大和灵活。

    物花无语
  • 如何在 Ubuntu 20.04 上安装 Apache

    本文最先发布在: https://www.itcoder.tech/posts/how-to-install-apache-on-ubuntu-20-04/

    雪梦科技
  • 如何在 Ubuntu 20.04 上安装 Apache

    Apache 是世界上最流行的网站服务器之一。它是开源并且跨平台的 HTTP 服务器,它托管了互联网上大量的网站。Apache 提供了很多强大的功能,并且可以扩...

    雪梦科技
  • 如何在CentOS 7上设置Apache虚拟主机

    Apache Web服务器是在Internet上提供Web内容的最常用方式,将其功能和组件分解为可单独定制和配置的单个单元。描述单个站点或域的基本单元称为虚拟主...

    爆栈工程师
  • 如何在Debian 8上设置Apache虚拟主机

    Apache Web服务器是在互联网上提供Web内容的最流行方式。它占互联网上所有活跃网站的一半以上,并且非常强大和灵活。

    独钓寒江雪_Ly
  • 如何在Ubuntu 16.04上设置Nginx服务器块(虚拟主机)

    使用Nginx Web服务器时,可以使用服务器块(类似于Apache中的虚拟主机)来封装配置详细信息,并从单个服务器托管多个域。

    葡萄
  • 如何在 Ubuntu 20.04 上安装 Apache Maven

    本文最先发布在 : https://www.itcoder.tech/posts/how-to-install-apache-maven-on-ubuntu-2...

    雪梦科技
  • 如何设置让我们在Ubuntu 14.04上加密多个Apache虚拟主机的证书

    Web服务器中使用SSL证书来加密服务器和客户端之间的流量,为访问应用程序的用户提供额外的安全性。让我们的加密提供了一种免费获取和安装可信证书的简便方法。

    灬半痴
  • macOS Big Sur 使用全新虚拟化框架创建超轻量虚拟机!

    之前我给大家介绍过如何?在 macOS 上使用 multipass 创建轻量级虚拟机来使用 Podman,众小伙伴纷纷齐说真香。今天我要给大家介绍一个全新的黑科...

    米开朗基杨

扫码关注云+社区

领取腾讯云代金券