一、需求

最早的时候我做本地的开发使用的都是 一台 vmware 的 ubuntu,使用的是linux环境,然后在 linux 上配置 vhost,但是代码是在 vmware 上的。

为了方便,想着全部使用 xampp 在 windows 上进行本地开发,这样子更方便一些。

本地进行开发,如果使用 TP5 或者是 laravel 这样的框架,是需要配置 vhost 的 DocumentRootpublic 目录的,因此不能单纯的使用 IP 进行访问,还需要配置 vhost。

二、实现

之前在 CSDN 上看到过一个,但是没什么用处,一直有这样子那样子的错误,就自己去仔细看了一下。

1、修改 httpd.conf

想要配置 vhosts,需要包含这个配置文件:httpd-vhosts.conf

修改 httpd.conf : (保证下面 Include 没有注释,新的 XAMPP 是没有的)

# Virtual hosts
Include conf/extra/httpd-vhosts.conf/

2、修改 httpd-vhost.conf

httpd-vhost.conf后面加上下面的配置:

    • 端口 8080 是我自己本地改的端口,如果没有改过直接用 80 即可
    • ServerName 是需要访问的域名
    • DocumentRoot 是项目文件的根目录

      • 比如 dongchang.localhost.com 我使用的是 TP5 开发的,因此 DocumnentRoot 使用了 public 的根目录
    • Directory 和 DocumentRoot 一样就行了
    <VirtualHost *:8080>  
        ServerName dongchang.localhost.com  
        DocumentRoot "E:/Awork/xampp/htdocs/dongchang/public"  
        <Directory "E:/Awork/xampp/htdocs/dongchang/public">  
            Options Indexes FollowSymLinks Includes execCGI  
            AllowOverride All  
            Require all granted  
        </Directory>  
    </VirtualHost>  

    3、修改 host 文件

    文件地址:

    C:\Windows\System32\drivers\etc\hosts

    添加下面的映射即可

    127.0.0.1 dongchang.localhost.com

    访问的时候使用 dongchang.localhost.com 访问即可。

    三、问题

    如果有些时候一直无法访问,需要查看自己的 DocumentRoot 是否是正确的。

    如果 dns 缓存的问题(基本不可能),可以使用 CMD 或者是 powershell 进行 DNS 刷新:

    ipconfig /flushdns