在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 服务器

相关推荐
IT项目管理2 分钟前
达梦数据库DMHS介绍及安装部署
linux·数据库
知北游天16 分钟前
Linux:多线程---深入互斥&&浅谈同步
linux·运维·服务器
Gappsong87418 分钟前
【Linux学习】Linux安装并配置Redis
java·linux·运维·网络安全
try2find1 小时前
移动conda虚拟环境的安装目录
linux·运维·conda
码农101号1 小时前
Linux中容器文件操作和数据卷使用以及目录挂载
linux·运维·服务器
PanZonghui2 小时前
Centos项目部署之Nginx 的安装与卸载
linux·nginx
PanZonghui2 小时前
Centos项目部署之安装数据库MySQL8
linux·后端·mysql
PanZonghui2 小时前
Centos项目部署之运行SpringBoot打包后的jar文件
linux·spring boot
PanZonghui2 小时前
Centos项目部署之Java安装与配置
java·linux
程序员弘羽2 小时前
Linux进程管理:从基础到实战
linux·运维·服务器