Мой сервер автоматически обновился до этой новой версии Roundcube 1.5, с тех пор Roundcube не показывает входящие сообщения с сообщением «Внутренняя ошибка сервера».
Я пробовал и искал возможные решения, но ничего не нашел.
Это Centos 7 с PHP 7.4 и сервером Mysql.
Можете ли вы предложить план действий?
В случае использования Control-WebPanel [CWP]
просто запустите эти команды по ssh:
/scripts/update_cwp
/scripts/mail_roundcube_update
Если вы устанавливаете Roundcube
вручную, эта проблема возникнет при обновлении Версия Roundcube 1.5
и Международное расширение PHP
не установлены и не активированы, поэтому:
версию PHP
, на которой работает ваш Roundcube
. на нем, чтобы узнать это, отредактируйте index.php
, который находится в пути Roundcube
, и добавьте эту строку в заголовок файла:echo phpinfo();
Затем сохраните файл и откройте URL-адрес Roundcube
в браузере, вы увидите всю информацию о версии PHP, используемой Roundcube
, включая php.ini
путь, (не забудьте после этого удалить строку).
2- Включить PHP intl Extension
, точные шаги для этого зависят от вашей версии PHP, многие вопросы в Stackoverflow
объясняют, как это сделать, например: как можно Я включаю PHP Extension intl?
Я также выполнил обновление, используя полную версию из официального источника ] и я обнаружил следующую ошибку в своем журнале:
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
Этот отчет о закрытой проблеме Uncaught Error :Класс 'Spoofchecker' not found #8127 предположил, что пакетphp-intl
теперь является новым требованием . Это сообщение на форуме содержит более подробную информацию.:
Согласноhttps://bugs.php.net/bug.php?id=63790средство проверки спуфчекера доступно только в том случае, если расширение PHP intl собрано с ICU >= 4.2. Итак, я подозреваю, что в вашей сборке его нет, но он требуется.
Так что это зависит от вашей системы, нужно ли устанавливать php-intl
. В более новых системахэто не обязательно.
Установка php-intl
в зависимости от вашей системы:Fedora/CentOS/RedHat/и т. д.:
dnf install php-intl
Debian/Ubuntu:
apt install php-intl
Не забудьте перезапустить веб-сервер.