前言
虽说apache安装好后给了我们一个默认的一个网站。并且我们还能够将这个默认的网站改动成我们自己的网站。可是这似乎还不能全然满足我们的须要,由于当我们要在本机上开发(phpWeb)或者測试另外一个网站的时候,那么我们是不是要将那个默认的网站改动成我们自己的那个网站呢,假设我们希望我们电脑上有同一时候多个网站,那又该怎么办呢?所以须要一种能够同一时候在一个电脑上同一时候提供多个网站,那么就须要配置多网站了。
多网站配置
(1)打开我们的apache配置文件。httpd.conf。查找vhost.confkeyword,将查找到的以下这行前面的凝视符号#去掉以打开多网站配置:
#Include conf/extra/httpd-vhosts.conf
(2)打开conf/extra/httpd-vhosts.conf文件,按例如以下步骤配置网站
a. 在这个文件的头部(尽量加入在上面)。加入例如以下一行代码(apache2.2须要这一步。apache2.4 NameVirtualHost被移除了,能够不做这一步)
# 设定希望提供“多网站”服务的IP地址和port号,通常默认就是:*.80
# 当中*代表全部的IP。默认事实上apache安装好之后就设置好,无需手动设置(keywordNameVirtualHost):
# 仅仅写一次
NameVirtualHost *:80
b. 将默认的两个网站去掉。或者改动成我们自己的网站,如我们将这个两个网站。第一个网站配置成apache默认的网站,第二个配置成我们自己的一个网站(就是磁盘上的一个目录而已)
# 将apache的默认网站设置成第一个网站,这样
# 当请求的网站在这里没有匹配到的时候,apache
# 会将这里的第一个网站返回
<VirtualHost *:80>
ServerName localhost
DocumentRoot "D:AMPhttpd-2.4.18-win64-VC11Apache24htdocs"
# 属性须要和DocumentRoot一致
<Directory "D:AMPhttpd-2.4.18-win64-VC11Apache24htdocs">
Options Indexes
# 同意全部的请求
Require all granted
# 差点儿不要写Deny
DirectoryIndex index.html,index.php
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.myphp.com
# 设定该网站的别名,即通过以下域名也能够訪问
ServerAlias "lt.php.com"
DocumentRoot "D:SoftwarePHPproject"
# 属性须要和DocumentRoot一致
<Directory "D:SoftwarePHPproject">
Options Indexes
# 同意全部的请求
Require all granted
# 差点儿不要写Deny
DirectoryIndex index.php index.php
</Directory>
</VirtualHost>
注意看上面的凝视,当中第一个网站设置成了apache默认的网站,第二个网站设置成了我磁盘上的某个目录,以后须要很多其它的网站,那么在后面按上面的形式以此加入就可以。可是DocumentRoot后面的路径须要和Directory的那个路径一致。
注意:
由于我们打开了多网站配置。那么当apache检測无法匹配到的域名,apache将会将第一个网站默认返回,写在最前面的那个网站就是第一个网站。
上面的网站权限訪问控制是基于apache2.4的,apache2.2是Deny from all(拒绝全部)或者Allow From all 或者Deny From ip地址或域名,Allow From 多个ip地址或者多个域名的形式。
上面的这两步做好后,须要确保我们电脑的hosts文件里有我们自己设置网站的域名或者别名相应的ip地址,加入本机域名相应的ip能够參考Apache主机(网站)配置。port监听,目录訪问权限及分布式权限这篇文章。