• 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目录下,避免出现各种错误,当然根据自己的需求。

  • 相关阅读:
    TOJ 假题之 Cow Brainiacs
    TOJ 2596: Music Notes
    Wannafly模拟赛2
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
    2017 ACM/ICPC Asia Regional Shenyang Online
    北京师范大学第十五届ACM决赛-重现赛
    Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
    Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)
    LibreOJ β Round #4
    长沙理工大学第十二届ACM大赛-重现赛
  • 原文地址:https://www.cnblogs.com/zyl-930826/p/12713748.html
Copyright © 2020-2023  润新知