[英]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.