Поиск по сайту:

Как установить веб-почту Roundcube на CentOS/RHEL 8/7


Roundcube — это бесплатное полнофункциональное многоязычное веб-почтовое программное обеспечение IMAP с открытым исходным кодом, с полностью функциональным и настраиваемым пользовательским интерфейсом, напоминающим приложение, и использующим новейшие веб-стандарты. Он построен с использованием PHP и предлагает полную функциональность, которую можно ожидать от современного почтового клиента.

Особенности круглого куба:

  • Он многоязычный, поддерживает более 70 языков.
  • Поддерживает адресную книгу «Найти по мере ввода».
  • Поддерживает несколько идентификаторов отправителя.
  • Обеспечивает сложную защиту конфиденциальности.
  • Имеет полнофункциональную адресную книгу с группами и разъемами LDAP.
  • Предлагает составление сообщений richtext/HTML.
  • Поддерживает поиск сообщений и контактов.
  • Поддерживает Интерт. доменные имена (IDNA).
  • Поддерживает манипуляции с папками, общие папки и ACL.
  • Расширяется с помощью API плагина.
  • Обеспечивает функцию проверки орфографии.
  • Обеспечивает функции импорта/экспорта.
  • Имеет плагин API для гибких расширений и многое другое.

Рекомендованные системные требования:

  1. Сервер CentOS 8/RHEL 8 или CentOS 7/RHEL 7 с минимальной установкой.
  2. Веб-сервер Apache или Nginx
  3. База данных PHP и MySQL/MariaDB
  4. Сервер SMTP и IMAP с поддержкой IMAP4 rev1

В рамках этой статьи мы предполагаем, что у вас уже есть работающий почтовый сервер Postfix с виртуальными пользователями, в противном случае следуйте нашим инструкциям по настройке:

  1. Настройка почтового сервера Postfix и Dovecot с помощью MariaDB – Часть 1
  2. Настройка пользователей виртуального домена Postfix и Dovecot – Часть 2
  3. Установка и интеграция ClamAV и SpamAssassin с почтовым сервером Postfix – Часть 3

Тестовая среда:

Для целей этой статьи я установлю Roundcube Webmail на Linode CentOS VPS с веб-сервером Nginx, статическим IP-адресом 192.168.0.100 и именем хоста . mail.linux-console.net.

Шаг 1. Установите Nginx, PHP-FPM и MariaDB в CentOS 8/7.

1. Сначала включите репозитории EPEL и REMI и установите Nginx, PHP. , PHP-FPM и MariaDB в вашей системе CentOS.

yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm    [CentOS/RHEL 8]
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm    [CentOS/RHEL 7]
yum install yum-utils 
yum-config-manager --enable remi-php72
yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server   

2. После успешной установки всех пакетов запустите веб-сервер Nginx, включите его автоматический запуск во время загрузки и проверьте, работает ли он.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Далее, если у вас включен системный брандмауэр, вам необходимо открыть порт 80 для внешних запросов.

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload 

4. Далее вам необходимо настроить PHP-FPM для правильной работы. Откройте файл /etc/php.ini с помощью редактора тестов командной строки.

vim /etc/php.ini

Найдите директиву ;cgi.fix_pathinfo=1, раскомментируйте ее и установите значение 0.

cgi.fix_pathinfo=0

Также раскомментируйте директиву ;date.timezone и установите для нее значение вашего часового пояса.

date.timezone = "Africa/Kampala"

Как только вы закончите, сохраните файл и выйдите.

5. Затем запустите службу PHP-FPM, включите ее автоматический запуск во время загрузки и проверьте, работает ли она, как показано ниже.

systemctl start php-fpm 
systemctl enable php-fpm 
systemctl status php-fpm 

Шаг 2. Защитите сервер MariaDB и создайте базу данных Roundecube

6. Теперь запустите службу MariaDB, используя следующие команды.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Установка MariaDB по умолчанию небезопасна. Вам необходимо запустить сценарий безопасности, который поставляется с двоичным пакетом, чтобы защитить его. Вам будет предложено установить пароль root, удалить анонимных пользователей, отключить удаленный вход в систему root и удалить тестовую базу данных.

mysql_secure_installation

8. Теперь войдите в базу данных MariaDB, создайте базу данных для Roundecube и предоставьте пользователю соответствующие разрешения для базы данных (не забудьте установить надежный/безопасный пароль в производственная среда).

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '=213@!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. Затем импортируйте макет таблицы Roundcube во вновь созданную базу данных.

cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Шаг 3. Загрузите пакет Roundcube

10. На этом этапе загрузите последнюю стабильную версию (1.4.9 на момент написания этой статьи) Roundcube со страницы загрузки или используйте загрузчик командной строки wget для получите его, извлеките файл TAR и загрузите файлы в корень документов вашего веб-сервера.

wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
tar xzf roundcubemail-1.4.9-complete.tar.gz 
mv roundcubemail-1.4.9 /var/www/html/roundcubemail

11. Затем установите соответствующие разрешения для корневых веб-файлов Roundcube.

chown -R nginx:nginx /var/www/html/roundcubemail

Шаг 4. Настройте блок сервера Nginx для веб-установщика Roundcube

12. Теперь создайте блок сервера Nginx для Roundcube в /etc/nginx/conf.d/ (вы можете назвать файл так, как хотите, но он должен иметь расширение .conf).

vim /etc/nginx/conf.d/mail.example.com.conf

Добавьте следующую конфигурацию в файл.

server {
        listen 80;
        server_name mail.example.com;

        root /var/www/html/roundcubemail;
        index  index.php index.html;

        #i# Logging
        access_log /var/log/nginx/mail.example.com_access_log;
        error_log   /var/log/nginx/mail.example.com_error_log;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
                deny all;
        }

        location ~ ^/(config|temp|logs)/ {
                deny all;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}

Сохраните файл и закройте его.

13. Затем откройте файл /etc/php-fpm.d/www.conf, чтобы внести несколько изменений в PHP-FPM web. директива.

vim /etc/php-fpm.d/www.conf

Измените пользователя apache на nginx в следующих переменных.

user = nginx
group = nginx

Затем закомментируйте строку listen=127.0.0.1:9000 и установите переменную прослушивания для прослушивания сокета Unix, установленного в файле блока сервера nginx:

listen = /var/run/php-fpm/php-fpm.sock

Также установите разрешения для сокета UNIX, раскомментируйте и измените строки на:

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Как только вы закончите, сохраните файл и закройте его.

14. Затем перезапустите службы Nginx и PHP-FPM, чтобы применить последние изменения, как показано ниже.

systemctl restart nginx php-fpm

Шаг 5. Доступ к веб-интерфейсу Roundcube

15. Прежде чем запустить мастер установки, чтобы избежать ошибок сеанса, установите соответствующие разрешения для каталога /var/lib/php/session/. Владельцем группы по умолчанию является apache, измените его на nginx, как показано.

ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/

16. Теперь откройте браузер и используйте адрес http://mail.example.com/installer (замените домен именем сервера, которое вы указали при создании блока сервера Nginx). для Roundcube) для доступа к веб-установщику. Если все версии PHP, расширения и настройки php.ini/.htaccess верны, вы увидите следующий снимок экрана. Нажмите Далее, чтобы перейти на страницу настроек.

http://mail.example.com/installer
OR
http://IP-address/installer

17. Страница конфигурации позволяет вам настроить экземпляр Roundcube. Мы объясним только важные параметры в рамках данного руководства.

В разделе Общая конфигурация укажите product_name, например Example.com Webmail.

Перейдите в раздел Настройка базы данных, введите хост базы данных, имя, пользователя и пароль. > подключиться к серверу MySQL.

Затем прокрутите вниз до настроек IMAP и SMTP и введите IP-адрес вашего сервера IMAP и SMTP, если он есть. тот же сервер, на котором вы запускаете Roundcube, оставьте его как «localhost» и также укажите другие необходимые параметры.

Вы можете указать другие настройки в соответствии с вашими потребностями. Как только вы закончите, нажмите Создать конфигурацию.

18. Теперь вы должны увидеть сообщение: «Файл конфигурации был успешно сохранен в каталоге /var/www/html/roundcubemail/config вашей установки Roundcube». » Нажмите Продолжить.

19. Вы можете просмотреть свою конфигурацию на странице тестовой конфигурации, как показано на следующем снимке экрана.

20. Затем удалите всю папку установщика (которая содержит файлы, которые могут раскрыть общедоступные конфиденциальные данные конфигурации, такие как пароли сервера и ключи шифрования) из корневого каталога Roundcube (или убедитесь, что Параметр Enable_installer в config.inc.php отключен).

rm -rf /var/www/html/roundcubemail/installer

21. Наконец, используйте URL-адрес http://mail.example.com для доступа к странице входа в Roundcube. Введите имя пользователя и пароль для просмотра почты.

Краткое содержание

Roundcube – это широко используемый полнофункциональный многоязычный почтовый клиент через Интернет. В этой статье мы показали, как установить последнюю стабильную версию Roundcube Webmail на CentOS/RHEL 8/7 с веб-сервером Nginx. Если у вас есть вопросы, воспользуйтесь формой обратной связи ниже, чтобы связаться с нами.