Wyszukiwanie w witrynie

Jak zainstalować pocztę internetową Roundcube na CentOS/RHEL 8/7


Roundcube to darmowe, otwarte, w pełni funkcjonalne, wielojęzyczne oprogramowanie poczty internetowej IMAP o otwartym kodzie źródłowym, z interfejsem użytkownika przypominającym aplikację, w pełni funkcjonalnym i konfigurowalnym oraz korzystającym z najnowszych standardów sieciowych. Jest zbudowany przy użyciu języka PHP i oferuje pełną funkcjonalność, jakiej można oczekiwać od nowoczesnego klienta poczty e-mail.

Funkcje Roundcube'a:

  • Jest wielojęzyczny, obsługuje ponad 70 języków.
  • Obsługuje książkę adresową typu Znajdź podczas pisania.
  • Obsługuje wiele tożsamości nadawców.
  • Oferuje zaawansowaną ochronę prywatności.
  • Posiada w pełni funkcjonalną książkę adresową z grupami i złączami LDAP.
  • Oferuje tworzenie wiadomości w formacie Richtext/HTML.
  • Obsługuje wyszukiwanie wiadomości i kontaktów.
  • Obsługuje międzynarodowe nazwy domen (IDNA).
  • Obsługuje manipulację folderami, folderami współdzielonymi i listą ACL.
  • Możliwość rozszerzenia za pomocą interfejsu API wtyczki.
  • Zapewnia funkcję sprawdzania pisowni.
  • Zapewnia funkcje importu/eksportu.
  • Posiada interfejs API wtyczek umożliwiający elastyczne rozszerzenia i wiele więcej.

Zalecane wymagania systemowe:

  1. Serwer CentOS 8/RHEL 8 lub CentOS 7/RHEL 7 z minimalną instalacją.
  2. Serwer WWW Apache lub Nginx
  3. Baza danych PHP i MySQL/MariaDB
  4. Serwer SMTP i IMAP z obsługą protokołu IMAP4 wersja 1

Na potrzeby tego artykułu zakładamy, że masz już działający serwer poczty e-mail Postfix z użytkownikami wirtualnymi, w przeciwnym razie postępuj zgodnie z naszymi instrukcjami konfiguracji:

  1. Konfigurowanie serwera pocztowego Postfix i Dovecot z MariaDB – część 1
  2. Skonfiguruj użytkowników domeny wirtualnej Postfix i Dovecot – część 2
  3. Zainstaluj i zintegruj ClamAV i SpamAssassin z serwerem pocztowym Postfix – część 3

Środowisko testowe:

Na potrzeby tego artykułu zainstaluję Roundcube Webmail na Linode CentOS VPS z serwerem internetowym Nginx, statycznym adresem IP 192.168.0.100 i nazwą hosta mail.linux-console.net.

Krok 1: Zainstaluj Nginx, PHP-FPM i MariaDB w CentOS 8/7

1. Najpierw zacznij od włączenia repozytoriów EPEL i REMI oraz zainstaluj Nginx, PHP , PHP-FPM i MariaDB w Twoim systemie 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. Po pomyślnym zainstalowaniu wszystkich pakietów uruchom serwer WWW Nginx, włącz jego automatyczne uruchamianie podczas uruchamiania i sprawdź, czy jest uruchomiony i działa.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Następnie, jeśli masz włączoną zaporę systemową, musisz otworzyć port 80 dla żądań zewnętrznych.

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

4. Następnie musisz skonfigurować PHP-FPM, aby działał poprawnie. Otwórz plik /etc/php.ini za pomocą edytora testów wiersza poleceń.

vim /etc/php.ini

Poszukaj dyrektywy ;cgi.fix_pathinfo=1, odkomentuj ją i ustaw jej wartość na 0.

cgi.fix_pathinfo=0

Odkomentuj także dyrektywę ;date.timezone i ustaw jej wartość na swoją strefę czasową.

date.timezone = "Africa/Kampala"

Gdy skończysz, zapisz plik i wyjdź.

5. Następnie uruchom usługę PHP-FPM, włącz jej automatyczne uruchamianie podczas uruchamiania i sprawdź, czy jest uruchomiona i działa, w następujący sposób.

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

Krok 2: Zabezpiecz serwer MariaDB i utwórz bazę danych Roundecube

6. Teraz uruchom usługę MariaDB za pomocą następujących poleceń.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Domyślna instalacja MariaDB jest niezabezpieczona. Aby go zabezpieczyć, musisz uruchomić skrypt bezpieczeństwa dostarczony z pakietem binarnym. Zostaniesz poproszony o ustawienie hasła roota, usunięcie anonimowych użytkowników, zdalne wyłączenie logowania roota i usunięcie testowej bazy danych.

mysql_secure_installation

8. Teraz zaloguj się do bazy MariaDB, utwórz bazę danych dla Roundecube i nadaj użytkownikowi odpowiednie uprawnienia do bazy danych (pamiętaj o ustaleniu silnego/bezpiecznego hasła w środowisko produkcyjne).

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. Następnie zaimportuj układ tabeli Roundcube do nowo utworzonej bazy danych.

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

Krok 3: Pobierz pakiet Roundcube

10. W tym kroku pobierz najnowszą stabilną wersję (1.4.9 w chwili pisania tego tekstu) Roundcube ze strony pobierania lub użyj narzędzia do pobierania z wiersza poleceń wget, aby pobierz go, rozpakuj plik TAR i prześlij pliki do katalogu głównego dokumentów na serwerze WWW.

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. Następnie ustaw odpowiednie uprawnienia do plików webroot Roundcube.

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

Krok 4: Skonfiguruj blok serwera Nginx dla instalatora internetowego Roundcube

12. Teraz utwórz blok serwera Nginx dla Roundcube w /etc/nginx/conf.d/ (możesz nazwać plik tak, jak chcesz, ale powinien on mieć rozszerzenie .conf).

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

Dodaj następującą konfigurację w pliku.

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;
        }
}

Zapisz plik i zamknij go.

13. Następnie otwórz plik /etc/php-fpm.d/www.conf, aby wprowadzić kilka zmian w PHP-FPM web dyrektywa.

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

Zmień użytkownika Apache na nginx w następujących zmiennych.

user = nginx
group = nginx

Następnie skomentuj linię listen=127.0.0.1:9000 i ustaw zmienną Listen tak, aby nasłuchiwała na gnieździe Unix ustawionym w pliku bloku serwera nginx:

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

Ustaw także uprawnienia dla gniazda UNIX, odkomentuj i zmień linie na:

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

Po zakończeniu zapisz plik i zamknij go.

14. Następnie uruchom ponownie usługi Nginx i PHP-FPM, aby zastosować najnowsze zmiany w następujący sposób.

systemctl restart nginx php-fpm

Krok 5: Uzyskaj dostęp do interfejsu internetowego Roundcube

15. Przed uruchomieniem kreatora instalacji, aby uniknąć błędów sesji, ustaw odpowiednie uprawnienia w katalogu /var/lib/php/session/. Domyślnym właścicielem grupy jest Apache. Zmień go na nginx, jak pokazano.

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

16. Teraz otwórz przeglądarkę i użyj adresu http://mail.example.com/installer (zamień domenę na nazwę serwera ustawioną podczas tworzenia bloku serwera Nginx dla Roundcube), aby uzyskać dostęp do instalatora internetowego. Jeśli wszystkie wersje PHP, rozszerzenia i ustawienia php.ini/.htaccess są prawidłowe, zobaczysz poniższy zrzut ekranu. Kliknij Dalej, aby przejść do strony konfiguracji.

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

17. Strona konfiguracji umożliwia skonfigurowanie instancji Roundcube. Wyjaśnimy jedynie ważne opcje związane z zakresem tego przewodnika.

W Konfiguracji ogólnej ustaw nazwę_produktu, na przykład pocztę internetową Example.com.

Przejdź do Konfiguracja bazy danych, wprowadź host bazy danych, nazwę, użytkownika i hasło aby połączyć się z serwerem MySQL.

Następnie przewiń w dół do ustawień IMAP i SMTP i wprowadź adres IP swojego serwera IMAP i SMTP, jeśli jest tym samym serwerze, na którym uruchamiasz Roundcube, pozostaw go jako „localhost” i określ także inne niezbędne parametry.

Możesz określić inne ustawienia w zależności od potrzeb. Gdy już skończysz, kliknij Utwórz konfigurację.

18. Powinieneś teraz zobaczyć komunikat „Plik konfiguracyjny został pomyślnie zapisany w katalogu /var/www/html/roundcubemail/config Twojej instalacji Roundcube.” Kliknij Kontynuuj.

19. Możesz sprawdzić swoją konfigurację na stronie konfiguracji testowej, jak pokazano na poniższym zrzucie ekranu.

20. Następnie usuń cały folder instalatora (który zawiera pliki, które mogą ujawnić publicznie wrażliwe dane konfiguracyjne, takie jak hasła do serwerów i klucze szyfrowania) z katalogu głównego Roundcube (lub upewnij się, że opcja Enable_installer w config.inc.php jest wyłączona).

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

21. Na koniec użyj adresu URL http://mail.example.com, aby uzyskać dostęp do strony logowania Roundcube. Wprowadź swoją nazwę użytkownika i hasło, aby przeglądać pocztę.

Streszczenie

Roundcube to powszechnie używany, w pełni funkcjonalny, wielojęzyczny klient poczty internetowej. W tym artykule pokazaliśmy, jak zainstalować najnowszą stabilną wersję Roundcube Webmail na CentOS/RHEL 8/7 z serwerem internetowym Nginx. Jeśli masz jakieś pytania, skorzystaj z poniższego formularza opinii, aby się z nami skontaktować.