繁体   English   中英

未捕获的RedisException:session_write_close()

[英]Uncaught RedisException: session_write_close()

因此,我有一个运行joomla的网站,并且尝试从CMS管理控制台将会话session handler设置为redis 我在访问的网站的首页和其他页面上收到以下错误。

Error: Failed to start application: Connection closed
Fatal error: Uncaught RedisException: Connection closed in /var/www/xxxx/libraries/joomla/session/handler/native.php:194 Stack trace: #0 /var/www/xxxx/libraries/joomla/session/handler/native.php(194): session_write_close() #1 [internal function]: JSessionHandlerNative->save() #2 {main} thrown in /var/www/clients/client3/web9/web/libraries/joomla/session/handler/native.php on line 194

我的服务器默认配置了php-fpm现在有趣的是 ,如果我更改php-wrapper / module使其与Fast-CGI从服务器控制面板运行)一起运行,则一切正常

顺便说一句,我在Ubuntu上使用PHP-Redis作为客户端库,在LAMP设置中使用ISPConfig作为控制面板。

好,所以在拉了很多头发之后,感谢上帝,我拥有了这些惊人的goog-foo技能,这是解决方案。

如果您使用的是ISPConfig 3,并且遇到相同的问题,请按照我在下面说的做,不要问为什么, 没有时间解释

在文件/usr/local/ispconfig/server/conf/php_fpm_pool.conf.master line 39 ,您将找到以下模板标记。

<tmpl_if name='custom_session_save_path' op='!=' value='y'>
php_admin_value[session.save_path] = <tmpl_var name='document_root'>/tmp
</tmpl_if>

只需删除它! 是的,您没看错,您必须删除那些行。 从管理面板保存更改后,转到

ISPConfig Admin Panel > Sites > Domain > PHP

并将该选项切换为禁用,并使其在服务器上更新,然后将该选项设置回PHP-FPM 还有.... ahahh完全是fab-php-fpm的辉煌Redis。

好的,您可以问为什么早点开玩笑了:D

按照这个线程发生的事情是,joomla( 像许多其他CMS一样 )尝试在运行时根据CMS管理面板中的设置将session.save_path更改为redis ,但是“ fpm-pool-template”是ISPConfig 3附带的服务器试图在服务器控制面板中使该值可编辑,在此过程中, php无法在运行时更改/覆盖该值。

如上所述这里

.... htaccess或ini_set()不能覆盖任何用php_admin_value设置的指令类型。

现在,它安全吗? ..以使用指令删除这些标签。

它的绝对安全删除上述线条,这些都为用户写成讨论进一步修改自己的需要在这里 此外,所使用的功能过于严格(IMHO),使用较小的专制php_value可以达到相同的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM