Powrót do bloga

Instalacja klienta Webmail z Roundcube na Ubuntu 20.04: Poradnik

Instalacja klienta Webmail z Roundcube na Ubuntu 20.04: Poradnik

Roundcube to otwartoźródłowy klient poczty e-mail oparty na przeglądarce i protokole IMAP. Zyskał popularność dzięki obsłudze list ACL oraz wykorzystaniu technologii AJAX (Asynchronous JavaScript and XML). Posiada doskonałe funkcje i kompleksowe możliwości, takie jak zarządzanie pocztą e-mail, obsługa MIME oraz operacje na folderach, by wymienić tylko kilka. Ponadto Roundcube oferuje bezproblemowe wyszukiwanie wiadomości, sprawdzanie pisowni, kalendarze i zarządzanie kontaktami. Przede wszystkim posiada solidne repozytorium wtyczek i dodatkowe opcje dostosowywania w porównaniu do innych popularnych klientów przeglądarkowych.

Roundcube to MUA. W przeciwieństwie do MTA, będziesz potrzebować usługi zarządzającej Twoją pocztą e-mail, najlepiej przy użyciu własnego serwera pocztowego. Zapoznaj się z naszym poradnikiem konfiguracji serwera pocztowego, aby dodać wybrany serwer pocztowy.

Gdy wysyłasz wiadomość e-mail, MUA przekazuje ją do swojego serwera MTA za pomocą protokołu SMTP. Po kilku przeskokach odbierający MTA otrzymuje wiadomość i przekazuje ją do swojego MDA za pomocą protokołu IMAP. Na koniec odbiorca wyświetla wiadomość e-mail za pomocą MUA.

Zrozummy te pojęcia:

  • MUA: Mail User Agent (agent użytkownika poczty) to interfejs, który umożliwia interakcję z użytkownikiem w celu przeglądania i wysyłania wiadomości e-mail.
  • MTA: Mail Transfer Agent (agent transferu poczty) przesyła wiadomości e-mail od nadawcy do odbiorcy.
  • SMTP: Simple Mail Transfer Protocol to protokół, którego MUA używa do wysyłania wiadomości e-mail do MTA.
  • MDA: Wszystkie wiadomości e-mail wysłane z MTA są odbierane i przechowywane u agenta dostarczania poczty (Mail Delivery Agent).
  • IMAP: Internet Message Access Protocol to protokół, którego MDA używają do dostarczania poczty do MUA.

W tym poradniku przeprowadzimy Cię przez kroki instalacji klienta webmail Roundcube na systemie Ubuntu 20.04.

Zaczynajmy!

Wymagania wstępne

Aby móc postępować zgodnie z tym poradnikiem, będziesz potrzebować:

Krok 1: Instalacja rozszerzeń i zależności

Zanim zaczniemy, zaktualizujmy repozytoria, aby uniknąć konfliktów oprogramowania:

Następnie zainstalujemy zależności Roundcube i skonfigurujemy PHP. Użyj poniższego polecenia, aby zainstalować rozszerzenia i biblioteki PHP:

Domyślnie kilka bibliotek PHP jest wyłączonych. Musimy włączyć te biblioteki, przechodząc do pliku php.ini serwera znajdującego się w /etc/php/7.0/apache2/php.ini. Otwórz plik php.ini za pomocą edytora tekstu nano:

W przeciwieństwie do najczęściej stosowanych opcji komentowania zaczynających się od znaku hash ( #), używamy średnika ( ;) do komentowania i odkomentowywania linii. Dodaj średnik na początku, aby zakomentować linię. Podobnie, usuń średnik, aby ją odkomentować.

Przyjrzyjmy się sekcji zawierającej zakomentowane linie zaczynające się od extension=. Usuń średniki, aby odkomentować rozszerzenia php_mbstring.dll oraz php_xmlrpc.dll :

Dodatkowo dopisz extension=dom.so na dole bloku rozszerzeń:

  • Modyfikuj pliki:
    • Zmień date.timezone:

Przejdź do opcji ustawień, przejdź do date.timezone, i odkomentuj tę linię. Następnie dodaj swoją strefę czasową, używając cudzysłowów. Sprawdź stronę stref czasowych PHP, aby zobaczyć, jak wygląda sformatowana strefa czasowa w pliku php.ini . Na przykład, jeśli jesteś z Europy, Twój plik będzie wyglądał tak:

    • Zmodyfikuj upload_max_filesize plik:

Następnie przejdź do upload_max_filesize ustawienia. Domyślnie maksymalny limit wynosi 2MB. W zależności od potrzeb możesz zwiększyć maksymalny rozmiar pliku do dowolnego poziomu. Jednak większość serwerów pocztowych ogranicza całkowity rozmiar załączników do 10MB. W tym poradniku ustawimy maksymalny rozmiar na 13MB, aby wielu użytkowników mogło dodawać załączniki w tym samym czasie:

    • Zmodyfikuj post_max_size plik:

Teraz przejdź do wyszukiwania post_max_size. W przeciwieństwie do ustawienia upload_max_filesize , które dotyczy załączników, post_max_size ma zastosowanie do rozmiaru całej wiadomości e-mail (w tym załączników). Ustawmy nasze post_max_size na wyższą wartość, aby zapobiec blokadom:

    • Ustaw func_overload wartość:

Na koniec znajdź mbstring.func_overload = 0 i odkomentuj to. Upewnij się również, że jego wartość jest ustawiona na null, aby obsługiwać funkcje ciągów wielobajtowych:

Zapisz wszystkie modyfikacje, a następnie zamknij plik. Nasz serwer jest skonfigurowany ze stosem LAMP, zależnościami Roundcube i wymaganą konfiguracją PHP. W następnym kroku pobierzemy oprogramowanie Roundcube, zainstalujemy je i skonfigurujemy.

Krok 2: Pobierz Roundcube

Przejdź do strony pobierania Roundcube, wybierz sekcję Wersja stabilna i przejdź do Pełny pakiet. Następnie kliknij prawym przyciskiem myszy przycisk Pobierz i wybierz Kopiuj adres linku. Używając tego adresu z poleceniem wget, pobierz archiwum tarball Roundcube na serwerze:

Następnie musisz rozpakować archiwum Roundcube:

Użyte argumenty mogą brzmieć myląco, szczególnie jeśli jesteś zupełnie początkujący. Oto wyjaśnienie znaczenia poszczególnych flag:

  • x: Oznacza rozpakowanie.
  • v: Oznacza tryb szczegółowy.
    • Informuje program tar o konieczności wypisania ścieżek i nazw rozpakowanych plików.
  • z: Informuje program tar o usunięciu opakowania tar i dekompresji archiwum za pomocą gzip.
    • Skompresowane rozszerzenie pliku gzip będzie miało .gz na końcu.
  • f: Oznacza plik.

Pomiń końcowy ukośnik / w katalogu, ponieważ przenosimy i zmieniamy nazwę całego katalogu, a nie tylko jego zawartości. Teraz przenieśmy rozpakowany katalog do /var/www i zmieńmy jego nazwę na roundcube:

Ustaw uprawnienia dla Apache, aby mógł tworzyć i edytować pliki konfiguracyjne oraz logów. Następnie zmień właściciela i grupę na www-data. Upewnij się również, że zezwalasz na uprawnienia do odczytu i zapisu dla właściciela i grupy:

Chociaż pobraliśmy kod Roundcube i ustawiliśmy niezbędne uprawnienia, nasza instalacja jest wciąż niekompletna. Połączenie Roundcube z naszą bazą danych za pomocą interfejsu graficznego Roundcube jest jeszcze do zrobienia. Zanim przejdziemy dalej, musimy zaktualizować Apache i jego konfigurację, aby poinformować o lokalizacji bazowej Roundcube.

Krok 3: Instalacja i konfiguracja Apache

W tym kroku edytujemy plik wirtualnego hosta, aby skonfigurować Apache. Używając Apache virtual hosting, będziemy hostować wiele witryn na jednym serwerze. Nawet jeśli Apache hostuje tylko jedną witrynę, użycie pliku konfiguracyjnego wirtualnego hosta jest prostsze i powoduje mniejszy bałagan w porównaniu z edycją głównej konfiguracji Apache. Aby dodać dodatkową warstwę bezpieczeństwa, rozważ securing Apache with Let’s Encrypt.

Każdy .conf plik w /etc/apache2/sites-available/ reprezentuje inną witrynę. Utwórzmy tutaj plik wirtualnego hosta dla Roundcube i poinformujmy Apache, aby udostępnił go dla przeglądarki.

Najpierw skopiuj domyślny plik konfiguracyjny, aby użyć go jako punktu wyjścia dla nowego pliku:

Otwórz plik za pomocą nano edytora tekstu:

Istnieje kilka zmian, które musimy wprowadzić. Przejdźmy przez każdą z nich, a następnie udostępnimy cały plik do skopiowania i wklejenia.

Najpierw zmień następujące dyrektywy w istniejącym VirtualBlock hoście:

  • ServerName: Informuje Apache o wyborze domeny.
    • Jeśli używasz jednego serwera, to ten ServerName będzie adresem IP lub nazwą domeny Twojego serwera.
  • DocumentRoot: Kiedy nadchodzi ruch, wskazuje, dokąd go skierować.
    • W naszym samouczku będziemy kierować ruch do Roundcube w /var/www/roundcube.
  • ServerAdmin: W przypadku problemów z Apache, ServerAdmin określa kontaktowy adres e-mail.
  • ErrorLog i CustomLog: Definiuje, gdzie zapisywać logi pomyślnych połączeń i logi błędów dla tej witryny.
    • Używaj konkretnych nazw do definiowania logów błędów, aby w przypadku problemów specyficznych dla danej witryny można je było bez trudu wykryć.

Następnie dodasz nowy blok Directory, który informuje Apache, co zrobić z katalogiem Roundcube. Blok Directory składa się z dwóch słów, gdzie pierwsze słowo w każdej linii to nazwa konfiguracji, po której następują rzeczywiste opcje konfiguracji.

  • Options -Indexes: Informuje Apache o konieczności wyświetlenia ostrzeżenia, jeśli wykryje brak pliku index.html lub index.php . Domyślnie wyświetla on zawartość katalogu.
  • AllowOverride All: Informuje Apache, że jeśli wykryty zostanie lokalny plik .htaccess , musi on nadpisać ustawienia globalne.
  • Order allow,deny: Instruuje Apache, aby dopasował dostęp klienta do witryny i odrzucił te niedopasowane.
  • allow from all: Definiuje typ dozwolonych klientów.

Po wprowadzeniu tych zmian zobaczysz plik wyglądający tak:

Zapisz wszystkie zmiany i zamknij plik. Teraz poprośmy Apache o zaprzestanie hostowania domyślnej witryny:

Następnie poinstruujemy Apache, aby zamiast tego zaczął hostować witrynę Roundcube. Podczas włączania witryny nie dołączaj .conf  ponieważ a2ensite wymaga nazwy pliku bez rozszerzenia:

Następnie włącz WŁĄCZ the mod_rewrite moduł Apache:

Na koniec zrestartuj Apache, aby umożliwić dostęp do instalacji Roundcube:

W ostatnim kroku musimy skonfigurować bazę danych, aby Roundcube mógł przechowywać i zarządzać swoimi danymi specyficznymi dla aplikacji.

Krok 4: Instalacja i konfiguracja MySQL

Spróbuj uzyskać dostęp do swojego serwera za pomocą adresu IP lub nazwy domeny. Na stronie pojawi się błąd konfiguracji. W tym miejscu Roundcube sprawdza plik wygenerowany podczas konfiguracji, ale nasza konfiguracja jest niekompletna. Zanim skonfigurujemy naszą konfigurację, przygotujmy naszą bazę danych.

  1. Połącz się z MySQL: Połączmy się z interaktywną powłoką MySQL przy użyciu nazwy użytkownika i hasła:
    Po wpisaniu powyższego polecenia zostaniesz poproszony o uwierzytelnienie się hasłem root, które zostało utworzone podczas instalacji MySQL.
  2. Utwórz bazę danych i użytkownika: Teraz, gdy pomyślnie się zalogowałeś, utwórzmy bazę danych i użytkownika bazy danych. Następnie nadamy użytkownikowi uprawnienia do wykonywania poleceń w naszej nowej bazie danych.
  3. Utwórz bazę danych: Użyj następującego polecenia, aby utworzyć bazę danych o nazwie roundcubemail. Następnie podaj opcje bazy danych, takie jak zestaw znaków do użycia utf8:
    MySQL oferuje solidne zabezpieczenia i zaawansowane bezpieczeństwo. Definiuje użytkownika poprzez nazwę i źródło połączenia. Powyższe polecenie tworzy użytkownika o nazwie roundcube i definiuje połączenie użytkownika z localhost.
  4. Zmień nazwę bazy danych: Zmieńmy nazwę użytkownika i zmodyfikujmy nasze hasło:
  5. Ustaw uprawnienia: Zezwól użytkownikom roundcube na wszystkie uprawnienia w bazie danych roundcubemail i tabelach:
    Zapisz zmiany i wyjdź z interaktywnej powłoki MySQL:

Naszym kolejnym krokiem jest skonfigurowanie struktury bazy danych, która pomoże Roundcube zapisać wszystkie informacje. Roundcube jest dostarczany z plikiem bazy danych, który automatycznie konfiguruje dane, co wymagałoby żmudnych wysiłków przy ręcznej konfiguracji.

Za pomocą następującego polecenia MySQL użyje naszego nowo utworzonego użytkownika do odczytania pliku /var/www/roundcube/SQL/mysql.initial.sql. Ponadto zastosuje konfigurację do bazy danych roundcubemail:

Teraz zostaniesz poproszony o podanie hasła użytkownika roundcube. Nasza konfiguracja bazy danych przygotowuje Roundcube do użycia i pozwala nam zweryfikować odpowiednie uprawnienia. Jeśli wszystkie kroki zostały wykonane pomyślnie, nie pojawi się żaden komunikat zwrotny i powrócisz do wiersza poleceń. W następnym kroku podamy Roundcube nasze ustawienia e-mail i zakończymy instalację.

Krok 5: Instalacja i konfiguracja Roundcube

Jeśli spróbujesz teraz uzyskać dostęp do instalacji Roundcube, otrzymasz stronę z błędem. Odwiedź http://your_server_ip_or_domain/installer aby dokończyć instalację.

Jeśli konfiguracja została wykonana prawidłowo, zobaczysz zielony napis OK po prawej stronie każdej pozycji. Możesz jednak nie zobaczyć zielonego OK w opcjonalnych ustawieniach LDAP w MySQL. Jeśli zobaczysz komunikat NOT AVAILABLE obok jakiejkolwiek innej linii, musisz zainstalować te niedostępne zależności. Jeśli pominąłeś pobranie którejkolwiek z zależności, możesz przejść pod wskazany adres URL i pobrać ją od razu.

Po zakończeniu konfiguracji przewiń w dół i kliknij przycisk NEXT . Przejdźmy przez proces generowania pliku konfiguracyjnego Roundcube. Sprawdź części formularza, które musimy zmodyfikować.

  • General Configuration

W sekcji Konfiguracja ogólna zmodyfikujemy kilka dostosowań i kilka ustawień ogólnych:

  • ip_check: Jest to opcja konfiguracji bezpieczeństwa i weryfikuje adres IP klienta podczas autoryzacji sesji.
  • product_name: Zmień nazwę produktu według własnego uznania. Ta nazwa mapuje „Roundcube” w tekście i zostaje zastąpiona tą nazwą.
  • support_url: Wsparcie w instalacji Roundcube. Jeśli nie masz dedykowanej strony pomocy technicznej, lepiej użyć adresu e-mail, takiego jak walker:paul@demo.com.
  • skin_logo: Zastąp logo Roundcube za pomocą skin_logo. Aby włączyć HTTPS, wybierz obraz z adresem URL HTTPS (178px na 47px).

Pozostaw pozostałe ustawienia z ich wartościami domyślnymi.

  1. Logging & Debugging: Przejdźmy do opcji domyślnych.
  2. Setting up the Database: Zamiast bezpośrednio korzystać z poczty, Roundcube używa bazy MySQL do przechowywania informacji potrzebnych do działania klienta webowego. Tutaj musimy poinformować Roundcube, aby uzyskał dostęp do bazy danych, którą skonfigurowaliśmy w Step 4. Użyj danych uwierzytelniających bazy danych, które utworzyliśmy wcześniej:
    • Database: MySQL
    • Server: localhost
    • Name of database: roundcubemail
    • User: roundcube
    • Password: demo12345@
      • Użyj hasła, które zdefiniowałeś podczas konfiguracji w Step 4.
    • Db_prefix: Jest to opcjonalne, chyba że używasz współdzielonej bazy danych z innymi aplikacjami.
  3. Modifying IMAP: Skonfigurujmy ustawienia IMAP i SMTP dla Twojego serwera pocztowego. Ponieważ ten poradnik skupia się na przykładzie Gmaila, w naszych ustawieniach IMAP użyjemy ustawień Gmaila. Jeśli jednak zdecydujesz się na innych dostawców usług, takich jak Yahoo lub Outlook, musisz użyć ich odpowiednich ustawień. Wielu dostawców poczty e-mail obsługuje połączenia z szyfrowaniem lub bez. Standardowo używaj adresów URL i portów SSL IMAP/SMTP, aby uniknąć korzystania z niebezpiecznych połączeń.
    • default_host: ssl://imap.gmail.com
    • default_port: 993
    • auto_create_user: Yes
      • Jeśli ta opcja nie jest zaznaczona, Roundcube nie utworzy użytkownika we własnej bazie danych i uniemożliwi zalogowanie się.
    • Pola *_mbox: Zachowaj wartości domyślne.
      • Możesz to zaktualizować później w interfejsie użytkownika Roundcube.
  4. Modifying SMTP: Serwer SMTP server jest integralną częścią poczty e-mail służącą do wysyłania wiadomości. Podobnie jak w sekcji serwera IMAP, użyjemy adresu URL SSL i portu. Jeśli nie masz doświadczenia w korzystaniu z serwerów SMTP, postępuj zgodnie z SMTP best practices, aby dowiedzieć się więcej o tego typu serwerach. W tym przykładzie używamy Gmaila:
    • pole smtp_server: ssl://smtp.gmail.com
    • pole smtp_port: 465
    • SMTP and IMAP to dwie różne usługi, dlatego obie wymagają nazwy użytkownika i hasła. Jednak Roundcube pozwala nam korzystać z danych uwierzytelniających IMAP, więc nie ma potrzeby ich ponownego tworzenia. Pozostaw pola pod smtp_user/smtp_pass puste i zaznacz pole obok Użyj bieżącej nazwy użytkownika i hasła IMAP do uwierzytelniania SMTP.
    • smtp_log: Yes
  5. Modifying Display Settings & User Prefs: Przejdźmy do domyślnych ustawień wyświetlania i preferencji użytkownika. Jeśli chcesz dostosować instalację Roundcube, kliknij link RFC1766 na stronie konfiguracji i zaktualizuj ręcznie pole language .
  6. Plugins: Roundcube oferuje obsługę wtyczek, które zwiększają bezpieczeństwo. Wtyczki są opcjonalne, jednak możesz je wykorzystać, aby ułatwić sobie pracę. Przyjrzyjmy się liście najczęściej używanych wtyczek:
    • archive: Ta wtyczka udostępnia przycisk Archive, który działa podobnie jak w Gmailu.
    • emoticons: Umożliwia to korzystanie z emotikonów w wiadomościach e-mail.
    • enigma: Ułatwia korzystanie z szyfrowania wiadomości e-mail GPG.
    • filesystem_attachments: Umożliwia tymczasowe zapisywanie załączników na serwerze Roundcube podczas zapisywania wersji roboczej wiadomości e-mail.
    • hide_blockquote: Ta wtyczka ukrywa cytowaną część wiadomości e-mail, na które odpowiadasz, aby utrzymać czystość interfejsu użytkownika.
    • identity_select: Umożliwia użytkownikowi wybór wielu adresów e-mail podczas tworzenia wiadomości.
    • markasjunk: Ta wtyczka umożliwia oznaczenie wiadomości e-mail jako spam i przeniesienie jej do folderu Spam.
    • newmail_notifier: Powiadamia o nowych wiadomościach e-mail za pomocą systemu powiadomień przeglądarki.

Kliknij przycisk UPDATE CONFIG, aby zapisać ustawienia. W ostatnim kroku przetestujemy konfigurację Roundcube, aby upewnić się, że wszystko działa poprawnie.

Krok 6: Przetestuj konfigurację Roundcube

Po zaktualizowaniu konfiguracji strona odświeży się, a na górze strony pojawi się żółte pole informacyjne z komunikatem, że Plik konfiguracyjny został pomyślnie zapisany w RCMAIL_CONFIG_DIR katalogu instalacji Roundcube.

Następnie kliknij przycisk CONTINUE, aby przetestować konfigurację. Podobnie jak na stronie sprawdzania zależności, zobaczysz zielony znacznik OK w każdej linii, o ile nie ma błędów. Jeśli zobaczysz jakiekolwiek błędy, wróć i dokładnie sprawdź wprowadzone dane.

Wprowadź swoją nazwę użytkownika i hasło IMAP oraz SMTP odpowiednio w sekcjach Test SMTP config i Test IMAP config, aby przetestować resztę konfiguracji. Podobnie kliknij Send test email oraz Check login. Jeśli wykonałeś poprawnie wszystkie kroki, strona odświeży się i zobaczysz zielony napis OK pod testowaną sekcją.

Uwaga: Jeśli korzystasz z Gmaila z włączonym uwierzytelnianiem dwuetapowym, rozważ wygenerowanie hasła do aplikacji, ponieważ Roundcube nie wie, jak poprosić o token uwierzytelniania dwuetapowego. Postępuj zgodnie z tą samą procedurą generowania hasła w przypadku korzystania z innych alternatywnych serwerów pocztowych, takich jak Yahoo lub Outlook.

Po zweryfikowaniu, że zarówno połączenia SMTP, jak i IMAP działają poprawnie, kolejnym krokiem jest usunięcie katalogu instalatora za pomocą SSH. Usunięcie katalogu instalatora to bezpieczny sposób na uniemożliwienie innym wygenerowania nowej konfiguracji i nadpisania prawidłowych ustawień:

Na koniec możesz przejść do instancji Roundcube, używając adresu IP swojego serwera, i zweryfikować swoją pocztę e-mail.

Podsumowanie

W tym samouczku dowiedzieliśmy się, jak zainstalować klienta poczty internetowej za pomocą Roundcube na Ubuntu 20.04. Oprócz omówionych powyżej kroków istnieją inne opcje bezpieczeństwa, takie jak obsługa HTTPS i szyfrowanie GPG, których dodanie należy rozważyć. Przyjmij jako odpowiedzialność ochronę swoich serwerów za pomocą solidnych środków bezpieczeństwa.

Ponadto istnieje wiele innych materiałów szkoleniowych dotyczących Redis i PHP, do których można uzyskać dostęp z naszych blogów:

Udanego korzystania!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.