在windows环境下xampp如何配置多站点

新手开发php时,装环境是一个比较麻烦的问题,幸好牛人多,把php环境打在包里面一键安装,现在我们来看看一键php环境安装XAMPP(Apache+MySQL+PHP+PERL)在windows环境下如何配置多站点.

window下的hosts文件

首先找到C:WindowsSystem32driversetc目录下的hosts文件,此文件在当前目录下是无法修改的,所以必须复制出来(到桌面),然后在文件尾部添加上你所需要的站点域名,以hosts文件为例,其本身配置了 127.0.0.1 localhost 前段是表示访问的主机IP,后一段是表示要访问的域名.

所以如果需要配置一个www.phpfensi.com的域名只需要加上 127.0.0.1 www.phpfensi.即可.

最后我在网上了解到windows下的hosts文件其作用就是‘将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,’应该是类似一个 key-value键值对的方式去解析域名,如果能在本机找到相应IP则访问当前IP.

apche的vhost配置文件

先找到vhost所在目录D:\xampp\apache\conf\extra,自己对应安装的xampp的目录去寻找,找到vhost文件后,打开会看到如下系统配置:

  1. DocumentRoot "D:\xampp\htdocs"
  2. ServerName localhost
  3. ErrorLog "logs/dummy-host2.example.com-error.log"
  4. CustomLog "logs/dummy-host2.example.com-access.log" common
  5. Options Indexes FollowSymLinks Includes ExecCGI
  6. Require all granted
  7. Order allow,deny
  8. Allow from all
  9. AllowOverride AuthConfig

如果你看过很多配置文件的话,相信能一眼就看清楚,因为我们之前配置了windows下的hosts文件的虚拟主机域名为www.test.com所以在vhost文件中应该这样配置:

  1. ServerAdmin
  2. DocumentRoot "D:\workspace\php\project\public"
  3. ServerName local.test.com
  4. ErrorLog "logs/dummy-host.example.com-error.log"
  5. CustomLog "logs/dummy-host.example.com-access.log" common
  6. <Directory "D:\workspace\php\project\public">
  7. Options Indexes FollowSymLinks Includes ExecCGI
  8. Require all granted
  9. </Directory>
  10. <IfModule mod_rewrite.c>
  11. <Directory "D:\workspace\php\project">
  12. RewriteEngine on
  13. RewriteRule ^$ public/ [L]
  14. RewriteRule (.*) public/$1 [L]
  15. </Directory>
  16. //开源软件:phpfensi.com
  17. <Directory "D:\workspace\php\project\public">
  18. RewriteEngine On
  19. RewriteCond %{REQUEST_FILENAME} !-d
  20. RewriteCond %{REQUEST_FILENAME} !-f
  21. RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
  22. </Directory>
  23. </IfModule>

可能不同人的Directory 目录配置不一样,一般系统默认是放在D:\xampp\htdocs下,但是为了方便放不同的几个项目,我们一般习惯的把系统默认的访问目录配置到我们的工作目录下,以我的为例:D:/workspace/php/下对应不同的项目目录.

最后如果还是不能访问的话,请检查xampp下的httpd.conf文件中的 Include conf/extra/httpd-vhosts.conf这条语句是否被注释掉,如果被注释掉则去掉注释语句.