在CentOS 6上设置Apache虚拟主机的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

关于虚拟主机

虚拟主机用于在单个 IP 地址上运行多个域。这对需要在一个虚拟专用服务器上运行多个站点的人特别有用。站点会根据访问站点的用户不同向访问者显示不同的信息。可以向 VPS 添加的虚拟主机数量没有限制。

设置

本教程中的步骤要求用户具有 root 权限。您可以在CentOS 6 初始服务器设置的第 3 和第 4 步中了解如何设置。此外,如果在步骤中提到用户,我将使用名称 www。您可以使用适合您的任何用户名。

此外,您需要已经安装并在虚拟服务器上运行 Apache。如果不是这种情况,您可以使用以下命令下载:

复制代码
sudo yum install httpd

第一步---创建新目录

创建虚拟主机的第一步是创建一个目录,我们将在其中保存新网站的信息。

此位置将在稍后的 Apache 虚拟配置文件中成为您的文档根目录。通过在代码行中添加 -p,该命令会自动生成新目录的所有父目录。

复制代码
sudo mkdir -p /var/www/example.com/public_html

您需要指定一个实际的经过 DNS 批准的域,或者一个 IP 地址,以测试虚拟主机是否正常工作。在本教程中,我们将使用 example.com 作为正确域名的占位符。

但是,如果您想使用未经批准的域名来测试该过程,您将在第六步中找到有关如何在本地计算机上使其工作的信息。

第二步---授予权限

我们需要将目录的所有权授予用户,而不仅仅是保留在根系统上。

复制代码
 sudo chown -R apache:apache /var/www/example.com/public_html 

此外,确保每个人都能够读取我们的新文件是很重要的。

复制代码
 sudo chmod 755 /var/www

现在您已经完成了权限设置。

第三步---创建页面

我们需要在我们的配置目录中创建一个名为 index.html 的新文件。

复制代码
sudo vi /var/www/example.com/public_html/index.html

我们可以向文件添加一些文本,这样当 IP 重定向到虚拟主机时,我们将有一些内容可以查看。

复制代码
<html>
  <head>
    <title>www.example.com</title>
  </head>
  <body>
    <h1>成功:您已设置虚拟主机</h1>
  </body>
</html>

保存并退出

第四步---启用虚拟主机

下一步是进入 Apache 配置文件本身。

复制代码
sudo vi /etc/httpd/conf/httpd.conf

有几行要查找。

确保您的文本与下面看到的内容匹配。

复制代码
#Listen 12.34.56.78:80
Listen 80

滚动到文档的最底部,找到名为虚拟主机的部分。

复制代码
NameVirtualHost *:80
```

```markdown
#
# 注意:如果使用 mod_ssl,NameVirtualHost 不能在没有端口指定符(例如::80)的情况下使用,这是由于 SSL 协议的性质所决定的。
#    

#    
# 虚拟主机示例:
# 几乎任何 Apache 指令都可以放入 VirtualHost 容器中。
# 第一个 VirtualHost 部分用于没有已知服务器名称的请求。
# 
<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
</VirtualHost>

需要重点关注的是 NameVirtualHost、Virtual Host、Document Root 和 Server Name 这几行。让我们逐一来看。

  • 取消注释(移除井号)NameVirtualHost 而不做任何更改。星号表示通过端口 80 进行的任何 IP 地址都将成为虚拟主机。由于您的系统可能只有一个 IP 地址,这不是问题,但是如果您愿意,可以将星号替换为您的 IP 地址。
  • 您可以保留其余的井号,直到达到 <VirtualHost *:80> 这一行。取消注释从那里到 <VirtualHost> 的所有内容。

  • 保持 <VirtualHost *:80> 不变 - 其详细信息必须与 NameVirtual Host 部分的相匹配。如果您在该部分用您的 IP 地址替换了星号,请确保在此处也这样做。

  • Document Root 非常关键!对于此部分,写入在第一步创建的新目录的扩展名。如果文档根目录不正确或缺失,您将无法设置虚拟主机。

  • Server Name 是另一个重要的信息,包含虚拟主机的域名(例如 www.example.com)。确保将域名完整拼写出来;我们将在下一行中添加任何备用可能性。

  • ServerAlias 是配置文件中默认不存在的新行。添加它将允许您列出域名的几个变体,例如在前面没有 www 的情况。

  • 此部分的其余行不是设置虚拟主机所必需的。但是,了解它们的作用仍然很有帮助。

    • Server admin 要求输入网站管理员的电子邮件。
  • 错误日志和自定义日志跟踪服务器的任何问题。错误日志涵盖在维护服务器时出现的问题,自定义日志跟踪服务器请求。您可以为这些过程设置自定义位置。

  • 确保 <VirtualHost> 已取消注释;然后保存并退出。

第五步 - 重新启动 Apache

我们已经对配置进行了许多更改。但是在重新启动 Apache 之前,这些更改不会生效。

首先停止所有 Apache 进程:

复制代码
sudo apachectl -k stop

然后再次启动 Apache。

复制代码
sudo /etc/init.d/httpd start

您可能会看到以下错误:

复制代码
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

这个消息只是一个警告,您将能够访问您的虚拟主机而不会出现进一步的问题。

可选步骤六 - 设置本地主机

如果您已经将您的域名指向您的虚拟专用服务器的 IP 地址,您可以跳过此步骤 - 您不需要设置本地主机。您的虚拟主机应该可以工作。但是,如果您想尝试您的新虚拟主机而不必连接到实际域名,您可以仅在计算机上设置本地主机。

要执行此步骤,请确保您在计算机本身上,而不是在您的 droplet 上。

要继续进行此步骤,您需要知道计算机的管理员密码,否则您将需要使用实际域名来测试虚拟主机。

如果您使用的是 Mac 或 Linux,在计算机上访问 root 用户(su)并打开您的 hosts 文件:

复制代码
nano /etc/hosts 

如果您使用的是 Windows 计算机,您可以在Microsoft 网站上找到更改主机文件的说明

您可以像下面的示例一样将本地主机详细信息添加到此文件中。只要该行存在,将浏览器指向,例如,example.com 将为您提供相应 IP 地址的所有虚拟主机详细信息。

复制代码
# Host Database
```

```markdown
#
# localhost 用于配置回环接口
# 系统启动时。不要更改此条目。
##
127.0.0.1       localhost

#虚拟主机
12.34.56.789    www.example.com 

然而,当您完成后,最好将这些虚构的地址从本地 hosts 文件中删除,以避免以后的混淆。

第七步---结果:查看您的虚拟主机的效果

完成虚拟主机的设置后,您可以在线查看其外观。在浏览器中输入您的 IP 地址(例如 http://12.34.56.789

它应该看起来与我方便的截图类似

干得好!

添加更多虚拟主机

要创建额外的虚拟主机,您只需重复上述过程,每次都要小心设置一个新的文档根目录和相应的新域名。然后只需将新的虚拟主机信息复制并粘贴到 Apache 配置文件中,如下所示

复制代码
<VirtualHost *:80>
     ServerAdmin webmaster@example.com
     DocumentRoot /var/www/example.com/public_html
     ServerName www.example.com
     ServerAlias example.com
     ErrorLog /etc/var/www/example.com/error.log
     CustomLog /var/www/example.com/requests.log
</VirtualHost>
<VirtualHost *:80>
     ServerAdmin webmaster@example.org
     DocumentRoot /var/www/example.org/public_html
     ServerName www.example.org
     ServerAlias example.org
     ErrorLog /var/www/example.org/error.log
     CustomLog /var/www/example.orgrequests.log
</VirtualHost>

查看更多

设置虚拟主机后,您可以继续为您的站点创建 SSL 证书安装 FTP 服务器

相关推荐
冷心笑看丽美人5 分钟前
探秘 DNS 服务器:揭开域名解析的神秘面纱
linux·运维·服务器·dns
冬天vs不冷1 小时前
Linux用户与权限管理详解
linux·运维·chrome
凯子坚持 c2 小时前
深入Linux权限体系:守护系统安全的第一道防线
linux·运维·系统安全
✿ ༺ ོIT技术༻2 小时前
C++11:新特性&右值引用&移动语义
linux·数据结构·c++
watermelonoops5 小时前
Deepin和Windows传文件(Xftp,WinSCP)
linux·ssh·deepin·winscp·xftp
疯狂飙车的蜗牛6 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
远游客07138 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<8 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟8 小时前
centos-stream9系统安装docker
linux·docker·centos
超爱吃士力架9 小时前
邀请逻辑
java·linux·后端