Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何在 Ubuntu 20.04 上设置 Apache 虚拟主机

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

作者头像
雪梦科技
发布于 2020-06-28 03:34:29
发布于 2020-06-28 03:34:29
3K00
代码可运行
举报
文章被收录于专栏:ITCoderITCoder
运行总次数:0
代码可运行

文章目录

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

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

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

一、前提

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

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

二、创建目录结构

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/var/www/
├── domain1.com
│   └── public_html
├── domain2.com
│   └── public_html

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

开始为域名创建根目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir -p /var/www/domain1.com/public_html

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<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目录的符号链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo a2ensite domain1.com

另外一个选项就是手动创建一个符号链接,像下面这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ln -s /etc/apache2/sites-available/domain1.com.conf /etc/apache2/sites-enabled/

一旦完成。测试配置文件是否有任何语法错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apachectl configtest

如果没有错误,你将看到下面的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Syntax OK

重启 Apache 服务器,使修改生效:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年06月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ubuntu 14.04 LTS系统中配置Apache2虚拟主机[通俗易懂]
安装apache服务器之后,让我们通过这个URL http://你的服务器的IP地址/ 来测试网站服务器是否正常工作 如果出现“It Worked!”的示例页,说明apache服务器已经开始工作了
全栈程序员站长
2022/10/02
1.2K0
如何在 Ubuntu 上安装和优化 Apache
这是我们的 LAMP 系列教程的开始:如何在 Ubuntu 上安装 Apache web 服务器。
用户8639654
2021/10/14
5460
ubuntu下apache新建虚拟主机
最近发现在一个服务器上面布了一些项目,如果不用虚拟主机,用链接跳进去的话,有时候路径会出错,而自己在配置虚拟主机的时候又出现了一些问题,看似简单的东西,却花费了一上午,所以决定把简单的方法记下来,供和我一样的小白共勉
lin_zone
2018/08/15
1.9K1
ubuntu下apache新建虚拟主机
如何在 Debian 9 上设置 Apache 虚拟主机
在本教程中,我们将向您介绍如何在 Debian 9 上设置 Apache 虚拟主机。
星哥玩云
2022/07/28
1.2K0
如何在 Debian 9 上设置 Apache 虚拟主机
ubuntu apache2配置详解(含虚拟主机配置方法)[通俗易懂]
在Windows下,Apache的配置文件通常只有一个,就是httpd.conf。但我在Ubuntu Linux上用apt-get install apache2命令安装了Apache2后,竟然发现它的httpd.conf(位于/etc/apache2目录)是空的!进而发现Ubuntu的 Apache软件包的配置文件并不像Windows的那样简单,它把各个设置项分在了不同的配置文件中,看起来复杂,但仔细想想设计得确实很合理。
全栈程序员站长
2022/09/07
4.6K0
Apache基础教程:软件安装和故障排查
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行。由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。在本教程中,我们将介绍一些管理Apache服务器的常用方法,包括停止,启动和启用服务,如何使用虚拟主机文件和目录,以及在服务器上查找重要文件和目录。
姚啊姚
2018/08/02
1.2K0
如何在Ubuntu 16.04上设置Apache虚拟主机
Apache Web服务器是在互联网上提供Web内容的最流行方式。它占互联网上所有活跃网站的一半以上,并且非常强大和灵活。
物花无语
2018/10/25
2.4K0
为Apache创建自签名SSL证书
TLS/SSL是用于将正常流量包装在受保护的加密包装中的Web协议。得益于此技术,服务器可以在服务器和客户端之间安全地发送流量,而不会被外部各方拦截。证书系统还可以帮助用户验证他们正在连接的站点的身份。
编程男孩
2018/07/26
6.6K0
为Apache创建自签名SSL证书
linux apache2配置_虚拟主机开启ssl
* 操作系统:Ubuntu 5.10 * 测试机地址:10.39.6.59 * 测试机域名:*.firehare.com
全栈程序员站长
2022/10/02
1.5K0
如何在Debian 8上设置Apache虚拟主机
Apache Web服务器是在互联网上提供Web内容的最流行方式。它占互联网上所有活跃网站的一半以上,并且非常强大和灵活。
独钓寒江雪_Ly
2018/07/24
1.6K0
[快速入门]如何在Ubuntu 18.04上安装Apache Web服务器
Apache HTTP服务器是世界上使用最广泛的Web服务器。它提供了许多强大的功能,包括可动态加载的模块,强大的媒体支持以及与其他流行软件的广泛集成。
楠宝宝
2018/10/11
2.6K0
linux apache2配置_apache2.4安装教程
大家好,又见面了,我是你们的朋友全栈君。 一、安装: ubuntu 及debian 下的apahce 有点特别,如果使用apt-get 方式安装( apt-get install apache2 ) 则安装目录默认在 /etc/apache2 默认log在 /var/log/apache2/ (这个鸟地方让我找了好久) 二、配置文件说明 /etc/apache2/apache2.conf 此为apache2 的主配置文件 具体可参考 http://www.blogjava.net/duanzhimin528/archive/2010/03/05/314564.html /etc/apache2/ports.conf 此为apache2的端口配置文件,此处设置了apache2 需要监听的端口 使用 Linsten port 格式 /etc/apache2/httpd.conf 此为apache2的用户 “主” 配置文件,这里可以直接配置网站目录,也可以只写一些全局网站生效的设置,eg:目录权限。默认为空,即所有内容由虚拟主机配置文件(即单独的网站配置文件)设置。需要注意一点 针对虚拟主机,ServerName 项需要在这里设置(不同的虚拟主机–即网站不同),可以写多个,否则在启动服务器的时候会提示:apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName mods-available mods-enabled sites-available sites-enabled 以上几个目录作用见上文参考: 三、网站配置及多虚拟主机(网站) 此处可以分两种情况:第一 系统默认方式:即按照上面介绍的配置文件更改;第二 自定义修改方式; 假设我们需要添加一个新网站,端口8080 网站目录 /var/www/web_server2 方式一: 1、按照上面的说明配置: apache2.conf 不需要更改; ports.conf 添加 端口监听: NameVirtualHost *:8080 #此行不必须 Listen 8080 httpd.conf 添加 ServerName: ServerName 0.0.0.0:8080 #此处IP地址可以换成域名或者具体地址,ServerName 正常应该放到虚拟主机配置中,但实际测试发现不生效,必须写在这里; 配置虚拟主机(网站): cp sites-available/default sites-available/my_web_server2 #这里将默认的虚拟主机配置拷贝一份为my_web_server2(名字可以任取,建议和主机域名一致,不必和网站目录一致) 修改配置如下: NameVirtualHost *:8080 #此行不必须(默认是写在 ports.conf 中) <VirtualHost *:8080> ServerAdmin webmaster@localhost DocumentRoot /var/www/web_server2 #修改这里为实际网站目录 <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/web_server2/> #修改这里为实际网站目录 Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> …….. enable 网站: a2ensite my_web_server2 #my_web_server2 为sites-available/目录下的虚拟主机配置文件名(之前拷贝复制的) service apache2 reload sudo /etc/init.d/apache2 restart 确认网站启动: ls -l sites-enabled/ 有
全栈程序员站长
2022/10/02
2.1K0
Apache配置指南及常见问题排查
Apache 是最流行的 Web 服务器之一,广泛用于托管各种网站和应用。它支持虚拟主机(VirtualHost)功能,可以让你在一台服务器上托管多个域名或站点。本文将分为两部分:
alanzeng
2025/01/14
3770
如何在Ubuntu 18.04上将Apache Web Root移动到新位置
在Ubuntu上,Apache Web服务器将其文档存储在/var/www/html中,该文档通常位于具有其余操作系统的根文件系统上。但有时,将文档根移动到另一个位置(例如单独安装的文件系统)会很有帮助。例如,如果您从同一个Apache实例提供多个网站,则将每个网站的文档根目录放在其自己的卷上,这样您就可以根据特定网站或客户端的需求进行扩展。
木纸鸢
2018/10/16
1.1K0
apache虚拟主机配置
Apache是一种流行的Web服务器,它允许您在同一物理服务器上运行多个网站。通过配置虚拟主机,可以为每个网站提供独立的Web根目录和配置文件,从而实现多个网站在同一服务器上运行的能力。在本文中,我们将讨论如何在Apache中配置虚拟主机。
玖叁叁
2023/04/10
29K1
如何在Apache上部署多个Wordpress站点
WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行前100万的网站中有超过16.7%的网站使用WordPress。到了2011年8月,约22%的新网站采用了WordPress。WordPress是目前因特网上最流行的博客系统。WordPress在最着名的网络发布阶段中脱颖而出。如今,它控制着超过7000万个站点。本教程介绍如何使用Apache虚拟主机将系统配置为在单个CVM上运行多个WordPress站点。
彼岸轮回
2018/08/16
2.5K0
如何在CentOS 7上设置Apache虚拟主机
Apache Web服务器是在Internet上提供Web内容的最常用方式,将其功能和组件分解为可单独定制和配置的单个单元。描述单个站点或域的基本单元称为虚拟主机。虚拟主机允许一台服务器使用匹配系统托管多个域或接口。
爆栈工程师
2018/07/30
2.6K0
linux中创建Nginx虚拟主机
什么是虚拟主机? 如果你不确定虚拟主机是什么,让我解释一下。这是一个Apache HTTP Server 术语,然而,Nginx 用户也经常使用它。事实上,Nginx 的正确术语是 server block。 虚拟主机是一种在单个服务器上托管多个域名的方法。 虚拟主机如何工作? 当你在服务器上启动像 Nginx 这样的 Web 服务器软件时,该 Web 服务器将自己绑定到一个或多个网络端口。通常用于将成为端口 80 和 443 的 Web 服务器。 现在,当计算机访问网站时,它将通过 Internet 向服
入门笔记
2022/06/02
2K0
如何在一个Ubuntu 18.04服务器上将Nginx配置为Web服务器和Apache的反向代理
Apache和Nginx是目前比较流行的两种常用于PHP的开源Web服务器。当托管具有不同要求的多个网站时,在同一虚拟机上运行它们会很有用。在单个系统上运行两个Web服务器的一般解决方案是使用多个IP地址或不同的端口号。
挺问中原
2018/09/25
4.8K0
如何在 Debian 9 上安装 Apache
Apache HTTP 服务器是世界上最受欢迎的 Web 服务器之一。它是一个开源和跨平台的 HTTP 服务器,为大部分互联网网站提供支持。 Apache 提供了许多强大的功能,可以通过其他模块进行扩展。
星哥玩云
2022/07/28
9660
如何在 Debian 9 上安装 Apache
相关推荐
Ubuntu 14.04 LTS系统中配置Apache2虚拟主机[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档