Ricerca nel sito web

Come installare Roundcube Webmail su CentOS/RHEL 8/7


Roundcube è un software di posta elettronica IMAP multilingue gratuito e open source, basato sul Web, con un'interfaccia utente simile a un'applicazione che è completamente funzionale e personalizzabile e utilizza gli standard Web più recenti. È costruito utilizzando PHP e offre tutte le funzionalità che puoi aspettarti da un moderno client di posta elettronica.

Caratteristiche del cubo rotondo:

  • È multilingue, supporta oltre 70 lingue.
  • Supporta una rubrica Trova durante la digitazione.
  • Supporta più identità di mittente.
  • Offre una sofisticata protezione della privacy.
  • Dispone di una rubrica completa con gruppi e connettori LDAP.
  • Offre la composizione di messaggi richtext/HTML.
  • Supporta la ricerca di messaggi e contatti.
  • Supporta l'int. nomi di dominio (IDNA).
  • Supporta la manipolazione delle cartelle, le cartelle condivise e l'ACL.
  • Estendibile utilizzando l'API plug-in.
  • Fornisce funzionalità di controllo ortografico.
  • Fornisce funzioni di importazione/esportazione.
  • Dispone di un'API plug-in per estensioni flessibili e molto altro ancora.

Requisiti di sistema raccomandati:

  1. Un server CentOS 8/RHEL 8 o CentOS 7/RHEL 7 con installazione minima.
  2. Server web Apache o Nginx
  3. Database PHP e MySQL/MariaDB
  4. Server SMTP e IMAP con supporto IMAP4 rev1

Ai fini di questo articolo, presupponiamo che tu abbia già un server di posta Postfix in esecuzione con utenti virtuali, altrimenti segui la configurazione delle nostre guide:

  1. Configurazione del server di posta Postfix e Dovecot con MariaDB – Parte 1
  2. Configurare gli utenti dei domini virtuali Postfix e Dovecot – Parte 2
  3. Installa e integra ClamAV e SpamAssassin nel server di posta Postfix – Parte 3

Ambiente di test:

Ai fini di questo articolo, installerò Roundcube Webmail su un VPS Linode CentOS con un server Web Nginx, indirizzo IP statico 192.168.0.100 e nome host mail.linux-console.net.

Passaggio 1: installa Nginx, PHP-FPM e MariaDB in CentOS 8/7

1. Inizia innanzitutto abilitando i repository EPEL e REMI e installa Nginx, PHP , PHP-FPM e MariaDB sul tuo sistema 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. Dopo aver installato con successo tutti i pacchetti, avvia il server web Nginx, abilitalo all'avvio automatico all'avvio e controlla se è attivo e funzionante.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Successivamente, se hai un firewall di sistema abilitato, devi aprire la porta 80 per le richieste esterne.

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

4. Successivamente, devi configurare PHP-FPM per funzionare correttamente. Apri il file /etc/php.ini utilizzando un editor di test da riga di comando.

vim /etc/php.ini

Cerca la direttiva ;cgi.fix_pathinfo=1, decommentala e imposta il suo valore su 0.

cgi.fix_pathinfo=0

Inoltre, rimuovi il commento dalla direttiva ;date.timezone e imposta il suo valore sul tuo fuso orario.

date.timezone = "Africa/Kampala"

Una volta terminato, salva il file ed esci.

5. Quindi avvia il servizio PHP-FPM, abilitalo all'avvio automatico all'avvio e controlla se è attivo e funzionante, come segue.

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

Passaggio 2: proteggere il server MariaDB e creare il database Roundecube

6. Ora avvia il servizio MariaDB utilizzando i seguenti comandi.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. L'installazione predefinita di MariaDB non è sicura. È necessario eseguire lo script di sicurezza fornito con il pacchetto binario per proteggerlo. Ti verrà chiesto di impostare una password di root, rimuovere utenti anonimi, disabilitare l'accesso root da remoto e rimuovere il database di test.

mysql_secure_installation

8. Ora accedi al database MariaDB, crea un database per Roundecube e concedi all'utente le autorizzazioni appropriate sul database (ricordati di impostare una password complessa/sicura in un ambiente di produzione).

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. Successivamente, importa il layout della tabella Roundcube nel database appena creato.

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

Passaggio 3: scarica il pacchetto Roundcube

10. In questo passaggio, scarica l'ultima versione stabile (1.4.9 al momento in cui scrivo) di Roundcube dalla pagina di download o utilizza wget downloader della riga di comando per prendilo, estrai il file TAR e carica i file nella root dei documenti del tuo server web.

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. Successivamente, imposta le autorizzazioni appropriate sui file webroot di Roundcube.

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

Passaggio 4: configurare il blocco server Nginx per il programma di installazione Web Roundcube

12. Ora crea un blocco server Nginx per Roundcube in /etc/nginx/conf.d/ (puoi nominare il file come preferisci ma dovrebbe avere un estensione .conf).

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

Aggiungere la seguente configurazione nel file.

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

Salva il file e chiudilo.

13. Successivamente, apri il file /etc/php-fpm.d/www.conf per apportare alcune modifiche al web PHP-FPM direttiva.

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

Cambia l'utente apache in nginx nelle seguenti variabili.

user = nginx
group = nginx

Quindi commenta la riga listen=127.0.0.1:9000 e imposta la variabile listen per ascoltare su un socket Unix impostato nel file di blocco del server nginx:

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

Inoltre, imposta le autorizzazioni per il socket UNIX, decommenta e modifica le righe in:

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

Una volta terminato, salva il file e chiudilo.

14. Quindi riavviare i servizi Nginx e PHP-FPM per applicare le modifiche recenti, come segue.

systemctl restart nginx php-fpm

Passaggio 5: accedi all'interfaccia utente Web di Roundcube

15. Prima di avviare la procedura guidata di installazione, per evitare eventuali errori di sessione, impostare i permessi appropriati sulla directory /var/lib/php/session/. Il proprietario del gruppo predefinito è apache, cambialo in nginx come mostrato.

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

16. Ora apri un browser e utilizza l'indirizzo http://mail.example.com/installer (sostituisci il dominio con il nome del server che hai impostato durante la creazione di un blocco server Nginx per Roundcube) per accedere al programma di installazione web. Se tutte le versioni PHP, le estensioni e le impostazioni php.ini/.htaccess sono corrette, vedrai lo screenshot seguente, fai clic su Avanti per andare alla pagina delle configurazioni.

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

17. La pagina delle configurazioni ti consente di configurare la tua istanza Roundcube. Spiegheremo solo le opzioni importanti per lo scopo di questa guida.

Nella Configurazione generale, imposta un nome_prodotto, ad esempio Esempio.com Webmail.

Vai a Configurazione database, inserisci l'host del database, il nome, l'utente e la password per connettersi al server MySQL.

Quindi scorri verso il basso fino alle impostazioni IMAP e SMTP e inserisci l'indirizzo IP del tuo server IMAP e SMTP, se disponibile. lo stesso server su cui stai utilizzando Roundcube, lascialo come “localhost” e specifica anche gli altri parametri necessari.

Puoi specificare altre impostazioni in base alle tue esigenze, una volta terminato, fai clic su Crea configurazione.

18. Ora dovresti vedere un messaggio che dice "Il file di configurazione è stato salvato con successo nella directory /var/www/html/roundcubemail/config della tua installazione Roundcube." Fai clic su Continua.

19. Puoi rivedere la tua configurazione dalla pagina di configurazione di prova come mostrato nello screenshot seguente.

20. Successivamente, rimuovi l'intera cartella del programma di installazione (che contiene file che potrebbero esporre al pubblico dati di configurazione sensibili come password del server e chiavi di crittografia) dalla directory root di Roundcube (o assicurati che Enable_installer in config.inc.php è disabilitato).

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

21. Infine, utilizza l'URL http://mail.example.com per accedere alla pagina di accesso di Roundcube. Inserisci il tuo nome utente e la password per visualizzare le tue email.

Riepilogo

Roundcube è un client di posta multilingue basato sul Web, ampiamente utilizzato e completo di tutte le funzionalità. In questo articolo, abbiamo mostrato come installare l'ultima versione stabile di Roundcube Webmail su un CentOS/RHEL 8/7 con il server web Nginx. Se hai domande, utilizza il modulo di feedback qui sotto per contattarci.