【问题标题】:Virtualhosts config works on XAMPP 5.6.15 but not XAMPP 7.0.1Virtualhosts 配置适用于 XAMPP 5.6.15 但不适用于 XAMPP 7.0.1
【发布时间】: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


【解决方案1】:

这是最新版本的 XAMPP 中的一个错误...Xampp 7.0.1 Apache crashes when I use session_start()

我们一直在检查 XAMPP 的配置,发现问题与您可以在 php.ini 文件的 Session 部分中找到的 use_only_cookies 变量有关。如果 Session 部分中的 use_only_cookies 变量设置为 0,Apache 将崩溃,如果设置为 1,一切都很好。

http://php.net/manual/en/session.configuration.php#ini.session.use-only-cookies

我们还检查了 use_strict_mode 是否应该设置为 1。

https://wiki.php.net/rfc/strict_sessions http://php.net/manual/en/session.configuration.php#ini.session.use-strict-mode

我们将在下一个 XAMPP 版本的 PHP 7 中包含这些更改。我们正在使用 7.0.2 版本构建安装程序,并将尽快发布它们。

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 2019-10-18
    • 2013-09-24
    • 2011-03-04
    • 2011-10-01
    • 1970-01-01
    • 2013-03-09
    • 2013-10-20
    相关资源
    最近更新 更多