Roundcube 1.5.0 升级:内部服务器错误

Roundcube 1.5.0 升级:内部服务器错误

我的服务器自动更新到 Roundcube 1.5 的新版本,从那时起,Roundcube 不再显示任何带有“内部服务器错误”消息的收件箱邮件。

我尝试并寻找可能的解决方案,但没有找到任何可解决的方法。

是带有 PHP 7.4 和 Mysql 服务器的 Centos 7。

您能建议一个行动计划吗?

答案1

如果使用Control-WebPanel [CWP],只需在 ssh 中运行以下两个命令:

/scripts/update_cwp
/scripts/mail_roundcube_update

如果您手动安装,升级到但未安装和激活Roundcube时就会出现此问题,因此:Roundcube 1.5 versionPHP intl extension

  1. 检查PHP versionRoundcube在其上运行的程序,以了解它编辑index.php位于Roundcube路径中的程序,并在文件头上添加此行:

回显 phpinfo();

然后保存文件,并在浏览器中打开 url Roundcube,您将看到有关Roundcube包括php.ini路径在内的 PHP 版本的所有信息(不要忘记删除之后的行)。

2- 启用PHP intl Extension,具体步骤取决于你的 PHP 版本,许多问题都Stackoverflow解释了如何执行此操作,例如:我如何启用 PHP Extension intl?

答案2

我还使用官方来源我在日志中发现了以下错误:

Oct 20 21:39:21 [hostname] roundcube[1258]: PHP Fatal error:  Uncaught Error: Class 'Spoofchecker' not found in /var/www/webmail/program/lib/Roundcube/rcube_spoofchecker.php:50
                                        Stack trace:
                                        #0 /var/www/webmail/program/actions/mail/index.php(1400): rcube_spoofchecker::check('gmail.com')
                                        #1 /var/www/webmail/program/actions/mail/index.php(523): rcmail_action_mail_index::address_string('[removed]...', 3, false, NULL, 'utf-8')
                                        #2 /var/www/webmail/program/actions/mail/list.php(123): rcmail_action_mail_index::js_message_list(Array, false, Array)
                                        #3 /var/www/webmail/program/include/rcmail.php(275): rcmail_action_mail_list->run(Array)
                                        #4 /var/www/webmail/index.php(283): rcmail->action_handler()
                                        #5 {main}
                                          thrown in /var/www/webmail/program/lib/Roundcube/rcube_spoofchecker.php on line 50

相关部分是:

Class 'Spoofchecker' not found

此封闭式问题报告未捕获错误:未找到类“Spoofchecker”#8127建议包php-intl现在新要求。 这论坛帖子提供更多详细信息:

根据https://bugs.php.net/bug.php?id=63790仅当使用 ICU >= 4.2 构建 PHP intl 扩展时,Spoofchecker 才可用。因此,我怀疑您的构建没有它,但它是必需的。

因此,是否需要安装取决于您的系统php-intl。在较新的系统上,则不需要。

php-intl根据您的系统进行安装:Fedora/CentOS/RedHat/等:

dnf install php-intl

Debian / Ubuntu:

apt install php-intl

不要忘记重新启动你的网络服务器。

答案3

如果您无法控制 php 安装,则可以在 program/actions/mail/index.php 中注释掉此代码以跳过此步骤:

        // Homograph attack detection (#6891)
        //if (!self::$SUSPICIOUS_EMAIL) {
        //    self::$SUSPICIOUS_EMAIL = rcube_spoofchecker::check($mailto);
        //}

相关内容