Wampserver配置“虚拟主机”的具体步骤,实现单个项目用指定地址访问。

Viewed 18

我在使用Wampserver在本地测试PHP项目,假如在www目录下面搭建多个网站,是不是访问就是localhost/alocalhost/b这样的按照网站目录名访问?
如果这样访问的话,是不是下面这样的:
多个项目文件夹放进 www 目录,就可以通过 localhost/文件夹名 的方式来访问。
举个例子,如果你的 www 目录下有两个项目:

www/woder_a/ → 浏览器访问 http://localhost/woder_a/
www/woder_b/ → 浏览器访问 http://localhost/woder_b/

但是很多现代PHP框架例如 ThinkPHP、Laravel或单页应用,它们的代码里会写死/css/style.css/index.php/home这种以根目录(/)开头的路径。

当通过localhost/woder_a访问时,浏览器会认为根目录(/)是 localhost,于是去请求 localhost/css/style.css ,结果当然就是 404 找不到文件(因为文件实际在 localhost/woder_a/css/style.css)

我想到的解决方案是需要把项目的“网站根目录”直接指向 woder_a 文件夹,而不是 www 文件夹。这就涉及到下面说的“虚拟主机”配置。

因为在Wampserver搭建的环境下所有项目共用同一个php.ini和数据库

我没有办法为A项目单独开一个PHP扩展,而为B项目关掉它。所有项目都共用 Wampserver 当前激活的那一套PHP和MySQL配置。如果需要同时运行不同 PHP 版本的项目,操作起来会比较繁琐。

我想到的是可以给A项目绑定一个独立的域名,比如woder_a.test直接在浏览器输入这个域名访问。

这样,项目中的所有/开头的路径,都会正确地指向woder_a文件夹,彻底解决上面提到的路径问题。 那么虚拟机配置该怎么设置?

1 Answers

好的,跟着下面这 5个步骤 操作,保证你能把 woder_a.test 这样的域名跑起来。

第1步:找到并打开配置文件

  1. 左键点击 Wampserver 右下角的绿色托盘图标。

  2. 在弹出的菜单中,选择 Apachehttpd-vhosts.conf

    (这会用记事本自动打开虚拟主机的配置文件)

第2步:在文件末尾添加一段配置代码

把下面的代码复制粘贴到文件的最末尾(注意不要动任何已有的代码):

<VirtualHost *:80>
    DocumentRoot "D:/wamp64/www/woder_a"
    ServerName woder_a.test
    <Directory "D:/wamp64/www/woder_a">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

重要修改

  • 把上面代码里所有的 D:/wamp64/www/woder_a 改成你项目文件夹的真实路径(比如你的项目在 E:/mycode/blog,就改成 E:/mycode/blog)。
  • ServerName woder_a.test 中的 woder_a.test 就是你之后要访问的域名,可以随意起名(比如 myblog.test)。

第3步:修改 Windows 的 hosts 文件(让域名指向本机)

  1. 按键盘上的 Windows键 + R,在弹出的“运行”窗口中输入 notepad C:\Windows\System32\drivers\etc\hosts,然后按回车。或者直接去这个地址找到文件,记事本打开修改。

    (如果提示需要管理员权限,点“是”或“确定”)

  2. 在 hosts 文件的最末尾,另起一行,添加下面这行内容:

    127.0.0.1 woder_a.test
    

    注意:如果你在第2步起的域名是 myblog.test,这里就写 127.0.0.1 myblog.test

  3. 保存并关闭记事本。

第4步:重启 Wampserver 使配置生效

  • 右键点击 Wampserver 的绿色托盘图标,在菜单中选择 重启所有服务 (Restart All Services)。
  • 等待右下角图标重新变绿。

第5步:验证成果

  1. 打开你的浏览器。
  2. 在地址栏输入 http://woder_a.test (或你自定义的域名),按回车。

如果看到的是你项目的首页,而不是 www 目录的目录列表,那就恭喜你,配置成功了!

几点补充说明

  • 以后想新增站点:重复第2步,把 woder_a 换成新项目的路径和新域名,然后记得去 hosts 文件里也加上对应的 127.0.0.1 新域名
  • 如果重启后图标不绿:说明配置代码里有拼写错误(比如路径用了反斜杠 \,或漏掉了引号)。仔细检查第2步的代码,确保路径里的斜杠是 /
  • 访问不了数据库:如果项目里连接数据库用的是 localhost,不用改。如果用的是 127.0.0.1,可能需要改回 localhost,因为 Wampserver 默认授权只对 localhost 有效。