问题是客户告诉我们,我们可以使用任何我们想要的操作系统上线,所以我们照常在 CentOS 上开发,当我们上线时,他们说“哦,新政策仅限 RHEL,抱歉”。我们的应用程序在 CentOS 上完美运行,但在 RHEL 上却不行。
主要问题:
- 受 'before' => 'auth' 过滤器保护的路由在 CentOS 上受到保护,但在RHEL 上不受保护。这意味着用户永远不会经过身份验证,因此 Auth::user() 始终为空,因此所有后续代码都会失败。
配置信息:
- 两台服务器都运行 Apache 2.2.15 和 PHP 5.4.13
- 两者都有相同的 Apache 模块和 PHP 扩展集。
- 两者都有来自 git 的相同代码。
我有一个修复,但它没有意义:在 vendor/laravel/framework/src/Illuminate/Routing/Router.php
在第 1398 行,更改:
public function filtersEnabled()
{
return $this->runFilters;
}
对此:
public function filtersEnabled()
{
return true;//$this->runFilters;
}
你知道这里发生了什么吗?我在任何地方都找不到设置 runFilters = false 的配置选项。