因此,基本上我已经连续两天在寻找解决方案,但似乎没有任何帮助。
我正在使用带有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
服务器周围有很多设置,所以如果您认为需要其中的一些来进行调试,只需提出要求,我会很高兴地将它们放在这里
编辑:我做了一个简短的视频,记录了所有正在进行的事情。你可以看到上传“失败”的内部服务器错误消息,但刷新页面后,附件在那里,它正在通过电子邮件发送,在收到电子邮件后,我在电子邮件中看不到附件预览,但当我点击它时,我可以看到它并下载它。
发布于 2021-11-12 13:07:25
在漫长的几天之后,我终于设法自己解决了这个问题,而且它真的很简单。所以发生的事情是,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;
}
https://stackoverflow.com/questions/69922324
复制相似问题