apache多网站配置

前言

 虽说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:\AMP\httpd-2.4.18-win64-VC11\Apache24\htdocs"
    # 属性须要和DocumentRoot一致
    <Directory "D:\AMP\httpd-2.4.18-win64-VC11\Apache24\htdocs">
        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:\Software\PHP\project"
    # 属性须要和DocumentRoot一致
    <Directory "D:\Software\PHP\project">
        Options Indexes
        # 同意全部的请求
        Require all granted
        # 差点儿不要写Deny
        DirectoryIndex index.php index.php
    </Directory>
</VirtualHost>

注意看上面的凝视,当中第一个网站设置成了apache默认的网站,第二个网站设置成了我磁盘上的某个目录,以后须要很多其它的网站,那么在后面按上面的形式以此加入就可以。可是DocumentRoot后面的路径须要和Directory的那个路径一致。

注意:

  1. 由于我们打开了多网站配置。那么当apache检測无法匹配到的域名,apache将会将第一个网站默认返回,写在最前面的那个网站就是第一个网站。

  2. 上面的网站权限訪问控制是基于apache2.4的,apache2.2是Deny from all(拒绝全部)或者Allow From all 或者Deny From ip地址或域名,Allow From 多个ip地址或者多个域名的形式。

上面的这两步做好后,须要确保我们电脑的hosts文件里有我们自己设置网站的域名或者别名相应的ip地址,加入本机域名相应的ip能够參考Apache主机(网站)配置。port监听,目录訪问权限及分布式权限这篇文章。

posted @ 2017-07-19 10:10  yfceshi  阅读(198)  评论(0编辑  收藏  举报