Centos7下配置Apache的虚拟主机

时间:2024-01-20 08:27:21

一、虚拟主机

虚拟主机是Apache提供的一个功能,通过虚拟主机拉雅在一台服务器上部署多个网站。虽然服务器的IP地址是相同的,但用户当用户使用不同的域名访问时,访问到的是不同的网站。

下面讲解Apache虚拟主机配置,当然,前提是你的CentOS已经安装并配置好了Apache服务器。

二、搭建虚拟主机

1.创建目录结构:

首先,我们需要创建一个目录结构,以保存网站数据,为访客提供服务。我们的文档根目录将被设置为在各个 /var/www/ 目录中,我们将这里为我们的每个虚拟主机创建一个目录。

在每个虚拟主机的目录中,我们将创建一个 public_html 用于存放实际文件。我们可以使用如下命令创建目录:

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

2.授予权限:

现在我们有了文件目录结构,但是它们是由 root 用户所拥有的,如果我们希望普通用户能在我们的网页目录修改文件,我们可以改变文件的权限

sudo chown -R $username:$usergroup /var/www/example.com/public_html

此外,还应修改权限以确保允许对一般Web目录及其中的所有文件和文件夹进行访问,以便正确提供页面。

sudo chmod -R  /var/www

3.为虚拟主机创建网站主页:

我们只是要作出网站主页 index.html 用以确保虚拟主机正确运行,创建一个新的 index.html 文件

vim /var/www/example.com/public_html/index.html

然后写入代码,这里我们只创建一个简单的页面:

<html>
<head>
<title>Welcome to example.com ! </title>
</head>
<body>
<h1>Success ! The example.com virtual host is working !</h1>
</body>
<html>

保存并关闭文件。

4. 创建新的虚拟主机文件:

虚拟主机文件是指定我们单独站点的配置,并指定 Apache Web 服务器如何响应各种域请求。

首先,我们将创建虚拟主机的存储目录,以及告知 Apache 虚拟主机准备好向访问者提供的目录。我们将创建两个目录,其中 sites-available 目录将保存我们所有的虚拟主机文件,而 sites-enabled 目录将举行符号链接。我们可以通过如下 bash 命令创建这两个目录:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enable

然后,我们要 Apache 查找虚拟主机 sites-enable 目录,为实现这一点,我们将编辑Apache的主配置文件 /etc/httpd/conf/httpd.conf 在文件的末尾添加:

IncludeOptional sites-enable/*.conf

接下来我们就可在存储目录中创建我们的拟主机文件了,使用root权限打开新文件:

sudo vim /etc/httpd/sites-available/example.com.conf

然后写入虚拟主机的配置:

<VirtualHost *:>    #监听端口为80
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example.com/pubilc_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined
</VirtualHost>

5.启用新的虚拟主机:

现在我们已经创建了虚拟主机文件,我们需要启用他们呢,以便Apache知道将它们提供给访问者。要做到这一点,我们可以创建一个符号链接在每个虚拟主机的sites-enable 目录:

sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enable/example.com.conf

完成后,重新启动Apache以使这些更改生效:

sudo apachectl restart

6.设置本地主机文件爱(可选):

用于测试虚拟主机的功能,通过修改 /etc/hosts 文件,将所有对 www.example.com 的访问直接传递给我们:

#server_ip_address example.com www.example.com
127.0.0.1 example.com www.example.com

然后测试我们的虚拟主机,在浏览器中键入 http://www.example.com 顺利的话就能打开我们的测试的主页文件。