【发布时间】:2016-05-02 04:51:49
【问题描述】:
2 台最近安装了全新安装的 Windows 10 Pro 计算机。 1 几个星期大的其他日子。我是不是忘记配置了?!
两者都在监听正确的端口。
代码如下所示:(我 100% 确定路径也指向正确的文件夹)
NameVirtualHost *
<VirtualHost *>
DocumentRoot "C:\xampp\htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *:81>
DocumentRoot "Path1"
ServerName project1.dev
<Directory "Path1">
Options all
AllowOverride all
Allow from all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:82>
DocumentRoot "Path2"
ServerName project2.dev
<Directory "Path2">
Options all
AllowOverride all
Allow from all
Require all granted
</Directory>
</VirtualHost>
localhost:80 仍然适用于两者,但如果我尝试使用每个项目的端口访问它们各自的页面,它只适用于最旧的安装。
只是说它无法访问页面没有错误,以太网来自同一台机器或通过 LAN 和 WAN 访问。
我没有想法...感谢您的宝贵时间。
编辑:我忘了提到 Apache 似乎没有记录新安装的访问尝试。如果我访问仪表板或 phpmyadmin,它会记录,但如果我尝试使用项目网站的端口,它不会记录。
Edit2:我已使用httpd -D DUMP_VHOSTS 确认两个虚拟主机都处于活动状态。所以现在问题似乎是由于某种原因我无法简单地访问虚拟主机。某些东西阻止了我的浏览器和 apache 之间的连接,与我是本地的或联网的无关。
Edit3:重要更新 - 我尝试在另一台计算机上安装 int xampp 并尝试了它,但它仍然无法正常工作。但是在安装时我记得我正在安装最新版本的 XAMPP 7.0.1。因此,我在另一台计算机上安装了 XAMPP,但现在使用的是在旧 Windows 安装上运行的旧 XAMPP 5.6.15 版本,你猜怎么着,它可以工作。所以问题与更新的 XAMPP 有关,可能与其他无关。我也会更新标题。
Edit4:现在我知道它与 XAMPP/Apache 相关,我回到虚拟主机配置并通过反复试验发现它与 Require all granted 相关,因为删除它或更改为 Require all denied 现在返回 403错误访问被禁止!页面(从根本无法连接改进)。由于所有建议修复 403 错误的页面都涉及Require all granted,我将不得不继续挖掘。
Edit5:重要更新 - 我决定看看它是否与我的文件有关,所以我开始删除一些。删除我的 index.php 让事情再次正常工作,所以我深入挖掘并注意到如果我删除了关于 Sessions 的代码,一切都会按预期加载。所以现在看来它是 PHP 7.0.1 处理会话的方式所特有的。
Edit6:好的,具体是 Session_start(); 搞砸了。
【问题讨论】:
-
VirtualHost需要ServerName来匹配请求。确保ServerName与 dns 名称匹配。 -
我没有用过名字,只是为了内部测试,所以局域网IP已经足够了,至少到现在...
-
尝试
AllowOverride None,同时保留Require all granted。 -
没有区别。我一直在阅读 apache.org 以尝试弄清楚
Require all granted的工作原理,但只要它位于指令内,它就会破坏虚拟主机。里面有没有其他东西也没关系。 -
您是否使用 Ssession_start() 或 session_start(); 开始会话?
标签: php apache xampp localhost virtualhost