Roundcube附件上传内部服务器错误

问题描述 投票:0回答:2

所以基本上我连续两天都在寻找解决方案,但似乎没有任何帮助。

我使用带有 IMAP、postfixadmin 和 dovecot 的 Roundcube 邮件客户端,每当我尝试上传附件时,都会收到内部服务器错误。 这是我在日志中捕获的内容:

[11-Nov-2021 01:41:27 UTC] PHP Fatal error:  Uncaught TypeError: fclose(): Argument #1 ($stream) must be of type resource, null given in /var/www/roundcube/program/lib/Roundcube/rcube_imap_generic.php:430
Stack trace:
#0 /var/www/roundcube/program/lib/Roundcube/rcube_imap_generic.php(430): fclose()
#1 /var/www/roundcube/program/lib/Roundcube/rcube_imap_generic.php(1149): rcube_imap_generic->closeSocket()
#2 /var/www/roundcube/program/lib/Roundcube/rcube_imap.php(215): rcube_imap_generic->closeConnection()
#3 /var/www/roundcube/program/lib/Roundcube/rcube.php(1038): rcube_imap->close()
#4 /var/www/roundcube/program/include/rcmail.php(921): rcube->shutdown()
#5 [internal function]: rcmail->shutdown()
#6 {main}
  thrown in /var/www/roundcube/program/lib/Roundcube/rcube_imap_generic.php on line 430

服务器周围有很多设置,因此如果您认为需要其中一些进行调试,请询问,我很乐意将它们放在这里

编辑:我制作了一个包含所有发生的事情的快速视频。您可以看到上传“失败”并显示内部服务器错误消息,但刷新页面后,附件就在那里,并且通过电子邮件发送,收到该电子邮件后,我看不到电子邮件中的附件预览,但是当我单击在上面我可以看到它并下载它。

php ubuntu imap dovecot roundcube
2个回答
3
投票

经过几天的努力,我终于自己解决了这个问题,而且非常简单。所以发生的事情是 rounducbe 正在尝试关闭不存在的文件。

因此,对于所有面临同样问题的人来说,要解决此问题,您必须在第 430 行编辑文件“path/to/roundcube/program/lib/Roundcube/rcube_imap_generic.php” 改变这个:

protected function closeSocket()
    {
        @fclose($this->fp);
        $this->fp = null;
    }

进入此:

protected function closeSocket()
    {
        if($this->fp){
        @fclose($this->fp);
        }
        $this->fp = null;
    }

0
投票

万分感谢!几乎整整 2 年后,Ubuntu Linux 20.04.6 LTS 仅有 Roundcube 1.4.3,而 1.6.2 稳定,并且在此版本中没有修补。有些东西改变了,路径不同:path-to-roundcube/program/lib/Roundcube/program/lib/Roundcube/rcube_imap_generic.php,在我的例子中,线路是398。谢谢和问候。

© www.soinside.com 2019 - 2024. All rights reserved.