PHP致命错误:session_start():无法初始化存储模块:用户(路径:[我在php.ini路径中设置的任何内容])
我正在使用的驱动程序不使用php.ini中设置的值,无论我是否在php.ini中将session.save_handler设置为files、redis等,也无论我设置的路径是什么(如果是redis,则为Redis服务器,启用文件的完全可写文件夹),都会出现错误。这里的路径不应该被访问,除非在框架外调用了本地的“session_start()”。此外,在框架外调用“session_start()”可以正常工作……因此显然PHP可以访问该路径。就好像在某些时候,会话驱动程序成为了框架驱动程序和php.ini中设置的任何内容的混合体。错误消息总是将“user”作为session.save_handler,因此显然这不是从php.ini中提取的……但路径是。为什么会发生这种情况?这是一种难以描述的问题,直到你经历过它……而且很难复制,因为即使对于数百个会话,所有东西似乎都正常工作(直到突然停止工作)。重启Apache也无法纠正这个问题——这里有许多问题,我最终只能重新启动机器以避免停机时间。显然,PHP 7机器现在将被从负载均衡器轮换中移除……但我希望现在已经解决了问题。
我在自己编译的PHP 7.0 RC5、RC6和RC8上以及Ubuntu 15.10 Wily(7.0.0-2+deb.sury.org~wily+1)上的最新Ondřej Surý PPA上遇到了这个问题。我在CodeIgniter和Symfony上遇到了这个问题,并且无论框架中使用的驱动程序类型(文件、数据库、redis)或在php.ini中设置的session.save_handler如何(应该与此无关,但只是想提一下),我都遇到了这个问题。我不断尝试各种组合并将事物扔到野外,但这个问题每次都会发生(有时需要12个小时以上,具体取决于网站的流量)。
感谢您提供的任何帮助!我愿意尝试任何建议。