【问题标题】:Service with name "Zend\Authentication\AuthenticationService" could not be created. Reason: Session validation failed无法创建名为“Zend\Authentication\AuthenticationService”的服务。原因:会话验证失败
【发布时间】:2019-03-14 07:56:48
【问题描述】:

我使用 zend 框架 3 开发了一个系统,并且在我的笔记本上运行良好,但是当我尝试在 CentOS 服务器上运行时,它无法创建会话容器。

Session error image

Session error image 2

我已经编译好了selinux模块,所以没关系

有人知道怎么解决吗?

笔记本配置

  • Linux Mint 18.2

  • 阿帕奇

服务器版本:Apache/2.4.18 (Ubuntu)

服务器建成时间:2018-06-07T19:43:03

  • PHP

PHP 7.2.10-1+ubuntu16.04.1+deb.sury.org+1 (cli)(构建时间:2018 年 10 月 1 日 11:45:50)(NTS)

版权所有 (c) 1997-2018 The PHP Group

Zend Engine v3.2.0,版权所有 (c) 1998-2018 Zend Technologies 使用 Zend OPcache v7.2.10-1+ubuntu16.04.1+deb.sury.org+1,版权所有 (c) 1999-2018,由 Zend Technologies 提供

  • PHP 信息

https://drive.google.com/open?id=1ZnmxugSDbtBvZFEBDj7SudxLNaQkl3WU

服务器配置(CentOS)

  • 红帽企业 Linux 服务器 7.5(迈坡)

  • 阿帕奇

服务器版本:Apache/2.4.6 (Red Hat Enterprise Linux)

服务器搭建:2018年5月28日16:19:32

  • PHP 信息

https://drive.google.com/open?id=1DUrc2tEfxOpkGyT0mGv59jlVWOQhKcA9

编辑

我发现了问题。 在我的 global.php 中,我使用验证器 RemoteAddr 配置了我的 session_manager,当我删除它时,它工作正常。

有人知道为什么会这样吗?

【问题讨论】:

  • 您是否尝试使用 xdebug 单步调试代码以查看实际错误是什么?抛出的错误(无法创建 AuthenticationService)意味着它在试图将 AuthenticationService 注入某处的工厂中失败。接下来,它可能是在注入服务之前被调用以创建该服务的工厂,它失败了,因为它试图使用 RemoteAddr 验证器,它由于 X 原因而失败。级联故障导致您要询问的单个错误。就像在学校里一样,你需要找到 X ;-)

标签: apache2 centos7 apache2.4 zend-framework3 php-7.2


【解决方案1】:

想一想,可能是我连接远程数据库被阻塞了,这是唯一的区别

【讨论】:

  • 这不是问题的答案。如果您找到了解决自己问题的方法,请将其作为good answer
  • 我的解决方案在 EDIT 上进行了描述,我删除了阻止远程 addr 的模块,现在我回答它为什么起作用:我的数据库是远程的,它被阻止了
【解决方案2】:

我今天遇到了完全相同的问题。我可以将问题追溯到仅与浏览器相关的问题。清除我的 cookie 解决了这个问题。

我已顺利登录应用程序。

然后运行部署,然后发生错误。我猜想在部署后重新生成了一些令牌,并且存储的会话 cookie 包含旧的。这似乎触发了这个错误。

如果您遇到此问题,请先尝试其他浏览器,看看是否适用于您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-26
    • 2022-07-16
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-23
    • 2016-11-13
    相关资源
    最近更新 更多