我的位置:速网百科 > 电商资讯 虚拟主机

xmapp配置虚拟主机

作者:薛鸿才 时间:2022-05-19 10:40:07

如何配置XAMPP的虚拟主机

如何配置XAMPP的虚拟主机

  你需要一些顶级域名访问方式来访问你本地的项目文件而不是目录方式访问,这时候就需要配置虚拟主机,给你的目录绑定一个域名(本地的话可以通过修改 hosts 文件随便绑定什么域名比如 www.a.com 或者 localdemo)。
    现在假定你有两个目录,一个存在于 /xampp/htdocs/5hoom,另一个存在于 /xampp/htdocs/chinadoto 。
    现在你想要在本地测试的时候访问 www.5hoom.com 对应的目录是 /xampp/htdocs/5hoom ,访问 www.chinadoto.com 对应的目录是 /xampp/htdocs/chinadoto 。
    懂得 Apache配置的其实就可以绕开了,因为 XAMPP 无非就是集成了 APache 之类的环境集成包,实现多域名也就是通过配置 Apache 实现的。
    当然网上搜索到的方法很多,但是网上的信息都是转载来转载去的,有的方法我怀疑是否验证过是否正确都不知道。以下的方法是我亲测的,如果你按照我的配置还是 无法实现本地多域名调试的话,可能是因为你的 XAMPP 的版本和我的不一致造成的。你可以在下面评论告知我,我会给你一一解答。以下配置针对的是 XAMPP Windows 1.7.1 版本。
    1、首先修改C盘WINDOWS\system32\drivers\etc目录下的 hosts 文件,用记事本打开,加入:
    127.0.0.1 www.5hoom.com
    127.0.0.1 www.chinadoto.com
    2、打开xampp\apache\conf\httpd.conf文件,搜索 “.. conf/extra/httpd-vhosts.conf”,确保前面没有 # 注释符,也就是确保引入了 vhosts 虚拟主机配置文件。
    开启了httpd-vhosts.conf,默认的httpd.conf默认配置失效(确保 httpd-vhosts.conf 文件里也开启了虚拟主机配置,见第3条),访问此IP的域名将全部指向 vhosts.conf 中的第一个虚拟主机。
    3、在虚拟主机设置文件xampp\apache\conf\extra\httpd-vhosts.conf里设置:
    取消 NameVirtualHost *:80 前面的 ##,这样就启用了 vhosts.conf ,默认的httpd.conf默认配置失效。虚拟主机配置将只设置在 httpd-vhosts.conf 里。
    <VirtualHost *:80>
    DocumentRoot /xampp/htdocs/5hoom
    ServerName www.5hoom.com
    </VirtualHost>
    <VirtualHost *:80>
    DocumentRoot /xampp/htdocs/chinadoto
    ServerName www.chinadoto.com
    </VirtualHost>
    4、 设置完了第3条之后,你会发现访问 localhost直接指向到设置的 a 那个路径去了,这个问题在第2条有讲。也就是开启了 vhosts 后,默认的 httpd 的配置就会失效了,默认的访问就指向到 vhosts 里的第一条设置去了。这时候你要把 localhost 的目录配置给设置回来。
    <VirtualHost *:80>
    DocumentRoot /xampp/htdocs/
    ServerName localhost
    </VirtualHost>
    至此,XAMPP 的虚拟主机设置完毕,现在 访问 localhost 还是原来的 XAMPP 的帮助指南,访问 www.5hoom.com 将指向到绑定的 5hoom 目录,访问 www.chinadoto.com 将指向到绑定的 chinadoto 目录。

你好,ubuntu下xampp配置虚拟主机的问题我情况和你的一样。请问 sudo

  这个相当于windows系统中的dns服务器,写两个常用的dns服务器就可以了,和虚拟主机配置应该关系不大。比如
  nameserver 8.8.8.8

如何配置 Apache 的虚拟主机

  1、基于ip地址的虚拟主机
  复制代码代码如下:
  Listen 80
  <VirtualHost 172.20.30.40>
   DocumentRoot /home/httpd/html1
   ServerName www.ok1.com
   ErrorLog /usr/local/apache/logs/error1_log
   CustomLog /usr/local/apache/logs/access1_log combined
  </VirtualHost>
  <VirtualHost 172.20.30.50>
   DocumentRoot /home/httpd/html2
   ServerName www.ok2.com
   ErrorLog /usr/local/apache/logs/error2_log
   CustomLog /usr/local/apache/logs/access2_log combined
  </VirtualHost>
  2、基于IP 和多端口的虚拟主机配置
  复制代码代码如下:
  Listen 172.20.30.40:80
  Listen 172.20.30.40:8080
  Listen 172.20.30.50:80
  Listen 172.20.30.50:8080
  <VirtualHost 172.20.30.40:80>
   DocumentRoot /www/example1-80
   ServerName www.example1.com
  </VirtualHost>
  <VirtualHost 172.20.30.40:8080>
   DocumentRoot /www/example1-8080
   ServerName www.example1.com
  </VirtualHost>
  <VirtualHost 172.20.30.50:80>
   DocumentRoot /www/example2-80
   ServerName www.example1.org
  </VirtualHost>
  <VirtualHost 172.20.30.50:8080>
   DocumentRoot /www/example2-8080
   ServerName www.example2.org
  </VirtualHost>
  3、单个IP 地址的服务器上基于域名的虚拟主机配置
  复制代码代码如下:
  # Ensure that Apache listens on port 80
  Listen 80
  # Listen for virtual host requests on all IP addresses
  NameVirtualHost *:80
  <VirtualHost *:80>
  DocumentRoot /www/example1
  ServerName www.example1.com
  ServerAlias example1.com. *.example1.com
  # Other directives here
  </VirtualHost>
  <VirtualHost *:80>
  DocumentRoot /www/example2
  ServerName www.example2.org
  # Other directives here
  </VirtualHost>
  如果您感觉上面的文章还不够详细可以看下下面的文章:
  实验目标:在apache实现基于域名的虚拟主机
  实验用的XAMPP版本为1.7.7,内含apache版本为2.2.21
  实验前准备:
  1. 为了测试不同的域名,在Windows/System32/drivers/etc/下觅得hosts文件,在其中添加实验用的域名若干,如 -
  复制代码代码如下:
  127.0.0.1 test1.net
  127.0.0.1 test2.net
  如此,则在浏览器中输入该俩域名时,Windows将其解析为127.0.0.1本地地址。即,在浏览器中访问localhost, test1.net, test2.net均可访问XAMPP的欢迎页。
  2. 在apache目录下建立目录,以放置您不同的网站。为保护XAMPP原有的htdocs中的欢迎页内容,实验另外建立了与htdocs平级的htdocs1目录,在其下建立了test1.net, test2.net两个子目录用以放置实验用的网站。如下 -
  apache/htdocs1/test1.net - 放置test1.net网站内容
  apache/htdocs1/test2.net - 放置test2.net网站内容
   在这两个目录中各新建hello world一网页 index.html,内容 -
  复制代码代码如下:
  <HTML>
  <HEAD></HEAD>
  <BODY>
  <H1>hello~, 这是[对应的网站名,用以区别].net</H1></BODY>
  </HTML>
  实验步骤:
  1. 找到apache/conf/httpd.conf, 将其中的
  ServerAdmin
  ServerName
  DocumentRoot
  注释掉。
  2. 在httpd.conf中,找到行
   Include "conf/extra/httpd-vhosts.conf"
  如被注释则解注。该文件记载了虚拟主机的参数。[以前虚拟主机参数是直接填写在httpd.conf中的,为了更好地组织文件,将其分离出去,类似于某些编程语言一样。因此httpd.conf中include它,即相当于把它的内容填在了httpd.conf中。]
  3. 这个httpd-vhosts.conf文件格式基本如下 -
  复制代码代码如下:
  #blah-blah
  NameVirtualHost *:80
  #blah-blah
  #blah-blah
  <VirtualHost *:80>
   ServerAdmin XXXXXXXX
   DocumentRoot "XXXXXXXX"
   ServerName XXXXXXX
   ServerAlias XXXXXX
   ErrorLog "logs/XXXXXX-error.log"
   CustomLog "logs/XXXXXXX-error.log" combined
  </VirtualHost>
  需要修改的,就是<VirtualHost>中的参数了。这个可以参见apache官方文档。根据实验域名,可以增加两个<VirtualHost>:
  复制代码代码如下:
  <VirtualHost *:80>
   ServerAdmin adm@test1.net
   DocumentRoot "C:/xampp/htdocs1/test1.net"
   ServerName test1.net
   ServerAlias www.test1.net
   ErrorLog "logs/test1-error.log"
   CustomLog "logs/test1-access.log" combined
   <Directory "C:/xampp/htdocs1/test1.net">
   order allow,deny
   allow from all
   </Directory>
  </VirtualHost>
  <VirtualHost *:80>
   ServerAdmin adm@test2.net
   DocumentRoot "C:/xampp/htdocs1/test2.net"
   ServerName test2.net
   ServerAlias www.test2.net
   ErrorLog "logs/test1-error.log"
   CustomLog "logs/test1-access.log" combined
   <Directory "C:/xampp/htdocs1/test2.net">
   order allow,deny
   allow from all
   </Directory>
  </VirtualHost>
  注意,如果不在各VirtualHost中定义Directory的可访问性,你将遇到的是Access Forbidden!就连原来的localhost也是。
  4. 由于之前注释掉了httpd.conf中的ServerName, DocumentRoot等,为了仍然能以localhost访问原XAMPP欢迎页,就在增加一个VirtualHost,如下 -
  复制代码代码如下:
  <VirtualHost *:80>
   ServerAdmin adm@localhost
   DocumentRoot "C:/xampp/htdocs"
   ServerName localhost
   ErrorLog "logs/localhost-error.log"
   CustomLog "logs/localhost-access.log" combined
   <Directory "C:/xampp/htdocs">
   order allow,deny
   allow from all
   </Directory>
  </VirtualHost>
  为了避免出错,把它放置在第一个Virtualhost位置。
  至此,apache基于域名的虚拟主机配置完成。可以通过http://localhost访问XAMPP欢迎页,通过http://test1.net和http://test2.net访问各自的主页。
  #
  # Virtual Hosts
  #
  # If you want to maintain multiple domains/hostnames on your
  # machine you can setup VirtualHost containers for them. Most configurations
  # use only name-based virtual hosts so the server doesn't need to worry about
  # IP addresses. This is indicated by the asterisks in the directives below.
  #
  # Please see the documentation at
  # <URL:http://httpd.apache.org/docs/2.2/vhosts/>
  # for further details before you try to setup virtual hosts.
  #
  # You may use the command line option '-S' to verify your virtual host
  # configuration.
  #
  # Use name-based virtual hosting.
  #
  NameVirtualHost *:80
  #
  # VirtualHost example:
  # Almost any Apache directive may go into a VirtualHost container.
  # The first VirtualHost section is used for all requests that do not
  # match a ServerName or ServerAlias in any <VirtualHost> block.
  #
  <VirtualHost *:80>
   ServerAdmin kongdaoxian@gmail.com
   DocumentRoot "E:/skydao/apache2/htdocs"
   ServerName localhost
   ServerAlias www.skydao.com
   ErrorLog "logs/localhost-error.log"
   CustomLog "logs/localhost-access.log" combined
   <Directory "E:/skydao/apache2/htdocs">
   order allow,deny
   allow from all
   </Directory>
  </VirtualHost>
  <VirtualHost *:80>
   ServerAdmin kongdaoxian@gmail.com
   DocumentRoot "E:/skydao/apache2/htdocs/project1"
   ServerName project1.com
   ServerAlias www.project1.com
   ErrorLog "logs/project1-error.log"
   CustomLog "logs/project1-access.log" combined
   <Directory "E:/skydao/apache2/htdocs/project1">
   order allow,deny
   allow from all
   </Directory>
  </VirtualHost>
  <VirtualHost *:80>
   ServerAdmin kongdaoxian@gmail.com
   DocumentRoot "E:/skydao/apache2/htdocs/zendTest/public"
   ServerName zendTest.com
   ServerAlias www.zendTest.com
   DirectoryIndex index.php
   <Directory />
  Options FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
   </Directory>
  </VirtualHost>
  <VirtualHost *:80>
   ServerAdmin kongdaoxian@gmail.com
   DocumentRoot "E:/skydao/apache2/htdocs/testRewrite"
   ServerName testRewrite.com
   ServerAlias www.testRewrite.com
   # DirectoryIndex index.php
   <Directory />
  Options FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
   </Directory>
  </VirtualHost>
  <VirtualHost *:80>
   ServerAdmin kongdaoxian@gmail.com
   DocumentRoot "E:/skydao/apache2/htdocs/test"
   ServerName test.com
   ServerAlias www.test.com
   ErrorLog "logs/zendTest-error.log"
   CustomLog "logs/zendTest-access.log" combined
   <Directory "E:/skydao/apache2/htdocs/test">
   order allow,deny
   allow from all
   </Directory>
  </VirtualHost> 本被提问者和网友采纳

apache虚拟主机配置

apache虚拟主机配置

  打开C:\WINDOWS\system32\drivers\etc\hosts加入下面2行:
  127.0.0.1
  www.yes.com
  127.0.0.1
  www.miss.com
  然后访问www.yes.com即可访问到你指定的DocumentRoot了
  如果出现forbidden权限问题再改成如下:
  <VirtualHost
  *:80>
  ServerName
  www.yes.com
  DocumentRoot
  "你的目录"
  <Directory
  "你的目录">
  Options
  Indexes
  FollowSymLinks
  AllowOverride
  None
  Order
  allow,deny
  Allow
  from
  all
  </Directory>
  </VirtualHost>

Apache2.4配置虚拟主机后却无法访问虚拟主机根目录下的文件?

  您好!从配置文件上来看暂无发现问题,这边也在Linux系统下按照您的配置文件测试过没问题。请问您是使用纯Apache 2.4 Windows版本的 还是 用打包的集成软件(XAMPP或者phpstudy之类的)?
  请确保您的网站根目录下有对应的默认首页文件,Apache中也设置了DirectoryIndex
  或者将<Directory>中的部分改一改:
  <Directory "D:\discuz">
  Require all granted
  </Directory>
  因为您上面提到NameVirtualHost和Order Allow,Deny ... Allow from Deny from...这些都是旧版2.2的Apache语法。

版权声明:本文由互联网用户自发贡献,仅代表作者观点。若文章违规或侵权,请 (举报反馈) ,核实后立即删除。