虚拟主机是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 755 /var/www
3.为虚拟主机创建网站主页:
我们只是要作出网站主页 index.html 用以确保虚拟主机正确运行,创建一个新的 index.html 文件
vim /var/www/example.com/public_html/index.html
然后写入代码,这里我们只创建一个简单的页面:
Welcome to example.com !
Success ! The example.com virtual host is working !
保存并关闭文件。
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
然后写入虚拟主机的配置:
#监听端口为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
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 顺利的话就能打开我们的测试的主页文件。