xampp配置多个域名,运行多个项目

XAMPP默认安装完毕后,站点文件默认放在/xampp/htdocs/ 文件下,并且可以通过http://localhost 进行访问。

如果想要测试二个程序,这二个程序的文件夹都存放在/xampp/htdocs/ 目录下,例如aa,bb(可以自定义)

给每个程序都单独的分配一个域名。比如

  • aa -> www.aa.com(或者aa.com等,可自定义)
  • bb -> www.bb.com

解决方法:

      首先打开httpd.conf文件,目录在xampp/apache/conf/httpd.conf找到LoadModule version_module modules/mod_version.so,

      确保此句话前面没有#,即允许从httpd.vhosts文件内读取配置,从httpd.vhosts读取到的配置将覆盖掉httpd.conf里面的配置,这里很重要!

     找到Options Indexes FollowSymLinks Includes ExecCGI,并将Indexes去掉,即改成Options FollowSymLinks Includes ExecCGI,否则添加了虚拟主机后将不能访问站点,      会提示没有权限访问;

     (上面内容经测试不用操作,可先跳过,直接进行下面操作,如果遇到问题可查看

 1、修改hosts文件

      不管你是否拥有上述域名,如果想通过域名访问自己建立的站点,这需要先对host文件进行修改。

      打开C:WindowsSystem32Driversetc目录下的 hosts 文件,加入如下二行:

  • 127.0.0.1  www.aa.com
  • 127.0.0.1  www.bb.com

      分别代表的是ip和域名。

      添加完毕后,保存即可。Win7/Win8 遇到hosts文件无法修改的解决办法是,先把hosts文件复制到桌面,在桌面改好后再复制到 etc 文件夹下进行替换旧的hosts文件。

 2、修改Apache虚拟主机的配置

         在虚拟主机设置文件xamppapacheconfextrahttpd-vhosts.conf里设置:

         删除 NameVirtualHost *:80 前面的 ##,即删除注释来启用httpd-vhosts.conf里的配置。(这步千万不能忘,否则所有网址都指向htdocs根目录,经测试,如果删除之后没效果,即所有网址都指向htdocs根目录,可以剪切此处到最后,然后再添加下面步骤的内容

在文件最后追加以下内容:

<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/aa"
ServerName www.aa.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/bb"
ServerName www.bb.com
</VirtualHost>

做完了上述操作后,发现使用localhost直接定位到了/xampp/htdocs/aa下的内容了,而我期望的是还是定位到/xampp/htdocs/的内容。也就是默认的httpd的设置失效了。

解决防范就是把localhost的配置在httpd-vhosts.conf里配置回来。

再在文件的最后添加上如下内容,并重启Apache.

<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs"
ServerName localhost
</VirtualHost>

至此,XAMPP 的虚拟主机设置完毕,现在 访问 localhost 还是原来的 htdocs 的内容,访问 www.aa.com 将指向到绑定的 aa项目,访问 www.bb.com 将指向到绑定的bb项目

接下来就引出另外一个问题,如果我不想把测试的程序放到/xampp/htdocs/目录下,比如说我想放在E:dedecms目录下,该如何解决呢?

例如将上述的aa项目放在E:/dedecms/目录下

要实现此功能共有2种方法

1、修改httpd-vhosts.conf文件中配置。

先期的配置如下:

<VirtualHost *:80>
DocumentRoot "D:/xampp/htdocs/aa"
ServerName www.aa.com
</VirtualHost>

需要修改为:

<VirtualHost *:80>
DocumentRoot "E:/dedecms/aa"
ServerName www.aa.com
<Directory "E:/dedecms/aa">
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>

即新增一个Directory节点来允许目录可访问。

但是发现浏览器中报403错误,显示没有访问权限:

还是权限<Directory>权限配置的问题,在xampp/apache/conf/httpd.conf文件中XAMPP默认的设置是这样的:

<Directory />
    AllowOverride none
    Require all denied
</Directory>

修改成下面的就可以了!

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

经测试,不在htdocs目录下同样可以运行php环境

操作完成后发现在htdocs目录下的项目又会报错

同上述E:dedecms目录下的aa项目一样

同理htdocs目录下的项目也需要在httpd-vhosts.conf文件中对应域名下添加<Directory>节点。

<VirtualHost *:80>
DocumentRoot "E:/dedecms/bb"
ServerName www.bb.com
<Directory "E:/dedecms/bb">
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>

项目尽量都放在htdocs目录下,避免出现各种错误,当然根据自己的需求。

原文地址:https://www.cnblogs.com/zyl-930826/p/12713748.html