Vyhledávání na webu

Jak nainstalovat Roundcube Webmail na CentOS/RHEL 8/7


Roundcube je bezplatný a plně funkční webový vícejazyčný webmailový software IMAP s otevřeným zdrojovým kódem, s uživatelským rozhraním podobným aplikaci, které je plně funkční a přizpůsobitelné a využívá nejnovější webové standardy. Je postaven pomocí PHP a nabízí plnou funkčnost, kterou můžete očekávat od moderního e-mailového klienta.

Vlastnosti Roundcube:

  • Je vícejazyčný, podporuje více než 70 jazyků.
  • Podporuje adresář Find-as-you-type.
  • Podporuje více identit odesílatele.
  • Nabízí sofistikovanou ochranu soukromí.
  • Má plně vybavený adresář se skupinami a konektory LDAP.
  • Nabízí skládání zpráv ve formátu richtext/HTML.
  • Podporuje vyhledávání zpráv a kontaktů.
  • Podporuje Int. doménová jména (IDNA).
  • Podporuje manipulaci se složkami, sdílené složky a ACL.
  • Rozšiřitelné pomocí Plug-in API.
  • Poskytuje funkci kontroly pravopisu.
  • Poskytuje funkce importu/exportu.
  • Má plug-in API pro flexibilní rozšíření a mnoho dalšího.

Doporučené systémové požadavky:

  1. Server CentOS 8/RHEL 8 nebo CentOS 7/RHEL 7 s minimální instalací.
  2. Webový server Apache nebo Nginx
  3. PHP a databáze MySQL/MariaDB
  4. Server SMTP a IMAP s podporou IMAP4 rev1

Pro rozsah tohoto článku předpokládáme, že již máte spuštěný e-mailový server Postfix s virtuálními uživateli, jinak se řiďte nastavením našich průvodců:

  1. Nastavení poštovního serveru Postfix a Dovecot pomocí MariaDB – část 1
  2. Konfigurace uživatelů virtuálních domén Postfix a Dovecot – část 2
  3. Nainstalujte a integrujte ClamAV a SpamAssassin do poštovního serveru Postfix – část 3

Testovací prostředí:

Pro účely tohoto článku budu instalovat Roundcube Webmail na Linode CentOS VPS s webovým serverem Nginx, statickou IP adresou 192.168.0.100 a názvem hostitele mail.linux-console.net.

Krok 1: Nainstalujte Nginx, PHP-FPM a MariaDB v CentOS 8/7

1. Nejprve začněte povolením repozitářů EPEL a REMI a nainstalujte Nginx, PHP , PHP-FPM a MariaDB na vašem systému 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. Jakmile úspěšně nainstalujete všechny balíčky, spusťte webový server Nginx, povolte mu automatické spouštění při bootování a zkontrolujte, zda je v provozu.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Dále, pokud máte povolenou systémovou bránu firewall, musíte otevřít port 80 pro externí požadavky.

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

4. Dále musíte nakonfigurovat PHP-FPM, aby fungoval správně. Otevřete soubor /etc/php.ini pomocí testovacího editoru příkazového řádku.

vim /etc/php.ini

Vyhledejte direktivu ;cgi.fix_pathinfo=1, odkomentujte ji a nastavte její hodnotu na 0.

cgi.fix_pathinfo=0

Odkomentujte také direktivu ;date.timezone a nastavte její hodnotu na vaše časové pásmo.

date.timezone = "Africa/Kampala"

Jakmile budete hotovi, uložte soubor a ukončete.

5. Poté spusťte službu PHP-FPM, povolte její automatické spouštění při spouštění a zkontrolujte, zda je v provozu, následovně.

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

Krok 2: Zabezpečte server MariaDB a vytvořte databázi Roundecube

6. Nyní spusťte službu MariaDB pomocí následujících příkazů.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Výchozí instalace MariaDB není zabezpečená. Chcete-li jej zabezpečit, musíte spustit bezpečnostní skript, který je součástí binárního balíčku. Budete požádáni o nastavení hesla uživatele root, odebrání anonymních uživatelů, vzdálené zakázání přihlášení uživatele root a odebrání testovací databáze.

mysql_secure_installation

8. Nyní se přihlaste do databáze MariaDB, vytvořte databázi pro Roundecube a udělte uživateli příslušná oprávnění k databázi (nezapomeňte nastavit silné/bezpečné heslo v produkční prostředí).

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. Dále importujte rozložení tabulky Roundcube do nově vytvořené databáze.

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

Krok 3: Stáhněte si balíček Roundcube

10. V tomto kroku si stáhněte nejnovější stabilní verzi (1.4.9 v době psaní tohoto článku) Roundcube ze stránky stahování nebo použijte wget downloader z příkazového řádku získejte jej, rozbalte soubor TAR a nahrajte soubory do kořenového adresáře dokumentů webového serveru.

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. Dále nastavte příslušná oprávnění pro soubory webroot Roundcube.

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

Krok 4: Nakonfigurujte blok serveru Nginx pro webový instalační program Roundcube

12. Nyní vytvořte blok serveru Nginx pro Roundcube pod /etc/nginx/conf.d/ (soubor můžete pojmenovat, jak chcete, ale měl by mít .conf).

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

Přidejte do souboru následující konfiguraci.

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

Uložte soubor a zavřete jej.

13. Dále otevřete soubor /etc/php-fpm.d/www.conf a proveďte několik změn na webu PHP-FPM směrnice.

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

V následujících proměnných změňte uživatele apache na nginx.

user = nginx
group = nginx

Poté zakomentujte řádek listen=127.0.0.1:9000 a nastavte proměnnou listen na naslouchání na sadě soketu Unix v souboru bloku serveru nginx:

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

Také nastavte oprávnění pro UNIX socket, zrušte komentář a změňte řádky na:

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

Jakmile budete hotovi, uložte soubor a zavřete jej.

14. Poté restartujte služby Nginx a PHP-FPM, abyste použili nedávné změny, a to následovně.

systemctl restart nginx php-fpm

Krok 5: Přístup k webovému uživatelskému rozhraní Roundcube

15. Než spustíte průvodce instalací, nastavte příslušná oprávnění v adresáři /var/lib/php/session/, abyste předešli chybám při relaci. Výchozí vlastník skupiny je apache, změňte jej na nginx podle obrázku.

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

16. Nyní otevřete prohlížeč a použijte adresu http://mail.example.com/installer (nahraďte doménu názvem serveru, který jste nastavili při vytváření bloku serveru Nginx pro Roundcube) pro přístup k webovému instalačnímu programu. Pokud jsou všechny verze PHP, rozšíření a nastavení php.ini/.htaccess správné, zobrazí se následující snímek obrazovky, kliknutím na Další přejděte na stránku konfigurace.

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

17. Stránka konfigurace umožňuje nastavit instanci Roundcube. Vysvětlíme pouze důležité možnosti pro rozsah této příručky.

V části Obecná konfigurace nastavte název_produktu, například Webová pošta Example.com.

Přejděte na Nastavení databáze, zadejte hostitel databáze, jméno, uživatel a heslo pro připojení k serveru MySQL.

Poté přejděte dolů na nastavení IMAP a SMTP a zadejte IP adresu svého serveru IMAP a SMTP, pokud je stejný server, na kterém provozujete Roundcube, ponechte jej jako „localhost “ a také zadejte další potřebné parametry.

Můžete zadat další nastavení podle svých potřeb, jakmile budete hotovi, klikněte na Vytvořit konfiguraci.

18. Nyní byste měli vidět zprávu „Konfigurační soubor byl úspěšně uložen do adresáře /var/www/html/roundcubemail/config vaší instalace Roundcube.“ Klikněte na Pokračovat.

19. Svou konfiguraci můžete zkontrolovat na konfigurační stránce testu, jak je znázorněno na následujícím snímku obrazovky.

20. Dále odeberte celou složku instalačního programu (která obsahuje soubory, které mohou veřejnosti vystavit citlivá konfigurační data, jako jsou hesla serveru a šifrovací klíče) z kořenového adresáře Roundcube (nebo se ujistěte, že možnost enable_installer v config.inc.php je zakázaná).

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

21. Nakonec použijte URL http://mail.example.com pro přístup na přihlašovací stránku Roundcube. Pro zobrazení e-mailů zadejte své uživatelské jméno a heslo.

souhrn

Roundcube je široce používaný, plně vybavený webový vícejazyčný poštovní klient. V tomto článku jsme ukázali, jak nainstalovat nejnovější stabilní verzi Roundcube Webmail na CentOS/RHEL 8/7 s webovým serverem Nginx. Máte-li nějaké dotazy, kontaktujte nás pomocí formuláře pro zpětnou vazbu níže.