我在使用Wampserver在本地测试PHP项目,假如在www目录下面搭建多个网站,是不是访问就是localhost/a,localhost/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文件夹,彻底解决上面提到的路径问题。 那么虚拟机配置该怎么设置?