Apache如何建多个站点

时间:2021-04-03 08:16:57
 
 

1.  先打开Apache的配置文件httpd.conf,在这个文件,

找到这句:#Include ......../extra/httpd-vhosts.conf

(根据安装路径不同,上面的路径会有不同)

 把前面的#去掉,即开启了使用虚拟主机的功能;

同样在httpd.conf中找到

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

去掉前面的#

2.  httpd-vhosts.conf中进行虚拟主机的配置操作;也可以在httpd.conf直接写入配置,但是不建议这么做;

3.  打开httpd-vhosts.conf文件,找到NameVirutalHost *:80,这句话的含义是制定这个主机的IP地址和端口号;

4.  关键的virtualhost配置,在NameVirutalHost *:80的下面;注意:Apache在接受请求时,首先会默认第一个VirtualHost,然后再匹配其他虚拟主机,如果没有匹配的,就是第一个VirtualHost起作用。故,在httpd.conf中,将<Dicrectory />(这个是所有目录的默认配置)<Direcotry/opt/lampp/htdocs>的权限,都默认设置为deny from all。(:# DocumentRoot 是网站文件存放的根目录# ServerName 是网站域名, 需要跟 DNS 指向的域名一致)

5.  virtualhost配置实例:

    <VirtualHost *:80>

    DocumentRoot "E:/web/www"(你的文件存放的路径)

    ServerName www.example.cc

    ErrorLog "logs/www.example.cc-error.log"(查看错误的地方)

    CustomLog "logs/www.example.cc-access.log" common

 

    <Directory "E:/web/www">(同上一致)

    Options Indexes FollowSymLinks Includes ExecCGI

    Order allow,deny

    Allow from all

    Require all granted

</Directory>

第二个

  <VirtualHost *:80>

    DocumentRoot "仿写第一个"(你的文件存放的路径)

    ServerName www.example.cc

    ErrorLog "logs/www.example.cc-error.log"(查看错误的地方)

    CustomLog "logs/www.example.cc-access.log" common

 

    <Directory "仿写第一个">(同上一致)

    Options Indexes FollowSymLinks Includes ExecCGI

    Order allow,deny

    Allow from all

    Require all granted

</Directory>