Com instal·lar Roundcube Webmail a CentOS/RHEL 8/7


Roundcube és un programari de correu web IMAP multilingüe, gratuït i de codi obert, amb totes les funcions, amb una interfície d'usuari semblant a una aplicació que és totalment funcional i personalitzable, i utilitza els estàndards web més recents. Està creat amb PHP i ofereix una funcionalitat completa que podeu esperar d'un client de correu electrònic modern.

  • És multilingüe, admet més de 70 idiomes.
  • Admet una llibreta d'adreces Troba mentre escriviu.
  • Admet diverses identitats de remitents.
  • Ofereix una protecció de privadesa sofisticada.
  • Té una llibreta d'adreces amb totes les funcions amb grups i connectors LDAP.
  • Ofereix la redacció de missatges de text enriquit/HTML.
  • Admet la cerca de missatges i contactes.
  • Admet Int. noms de domini (IDNA).
  • Admet la manipulació de carpetes, carpetes compartides i ACL.
  • Extensible mitjançant l'API del connector.
  • Ofereix la funció de correcció ortogràfica.
  • Ofereix funcions d'importació/exportació.
  • Té una API de connectors per a extensions flexibles i molt més.

  1. Un servidor RHEL 7 amb instal·lació mínima.
  2. Servidor web Apache o Nginx
  3. Base de dades PHP i MySQL/MariaDB
  4. Servidor SMTP i IMAP amb suport IMAP4 rev1

Per a l'abast d'aquest article, suposem que ja teniu un servidor de correu electrònic Postfix en funcionament amb usuaris virtuals, en cas contrari, seguiu la configuració de les nostres guies:

  1. Configuració del servidor de correu Postfix i Dovecot amb MariaDB – Part 1
  2. Configurar usuaris de dominis virtuals de Postfix i Dovecot - Part 2
  3. Instal·lar i integrar ClamAV i SpamAssassin al servidor de correu Postfix - Part 3

Als efectes d'aquest article, instal·laré Roundcube Webmail en un Linode CentOS VPS amb un servidor web Nginx, adreça IP estàtica 192.168.0.100 i nom d'amfitrió mail.linux-console.net.

Pas 1: instal·leu Nginx, PHP-FPM i MariaDB a CentOS 8/7

1. Primer comenceu habilitant els repositoris EPEL i REMI i instal·leu el servidor Nginx, PHP, PHP-FPM i MariaDB al vostre 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. Un cop hàgiu instal·lat correctament tots els paquets, inicieu el servidor web Nginx, activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada i comproveu si està en funcionament.

# systemctl start nginx 
# systemctl enable nginx
# systemctl status nginx

3. A continuació, si teniu un tallafoc del sistema habilitat, heu d'obrir el port 80 per a sol·licituds externes.

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

4. A continuació, heu de configurar PHP-FPM perquè funcioni correctament. Obriu el fitxer /etc/php.ini mitjançant un editor de proves de línia d'ordres.

# vim /etc/php.ini

Busqueu la directiva ;cgi.fix_pathinfo=1, descomenceu-la i poseu-ne el valor a 0.

cgi.fix_pathinfo=0

A més, elimineu el comentari de la directiva ;date.timezone i configureu-ne el valor a la vostra zona horària.

date.timezone = "Africa/Kampala"

Un cop hàgiu acabat, deseu el fitxer i sortiu.

5. A continuació, inicieu el servei PHP-FPM, activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada i comproveu si està en funcionament, de la manera següent.

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

Pas 2: Assegureu el servidor MariaDB i creeu una base de dades Roundcube

6. Ara inicieu el servei MariaDB amb les ordres següents.

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb

7. La instal·lació per defecte de MariaDB no és segura. Heu d'executar l'script de seguretat que ve amb el paquet binari per assegurar-lo. Se us demanarà que establiu una contrasenya d'arrel, que elimineu usuaris anònims, que desactiveu l'inici de sessió d'arrel de forma remota i que elimineu la base de dades de prova.

# mysql_secure_installation

8. Ara inicieu sessió a la base de dades MariaDB, creeu una base de dades per a Roundecube i atorgueu a l'usuari els permisos adequats a la base de dades (recordeu establir una contrasenya segura/segura en un entorn de producció).

# 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 '[email !#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

9. A continuació, importeu el disseny de la taula Roundcube a la base de dades acabada de crear.

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

Pas 3: descarregueu el paquet Roundcube

10. En aquest pas, descarregueu l'última versió estable (1.4.9 en el moment d'escriure aquest article) de Roundcube des del programa de descàrrega de la línia d'ordres wget per obtenir-lo, extreu el fitxer TAR i pengeu els fitxers a l'arrel del document del vostre servidor 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. A continuació, configureu els permisos adequats als fitxers arrel web de Roundcube.

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

Pas 4: configureu el bloc del servidor Nginx per a l'instal·lador web de Roundcube

12. Ara creeu un bloc de servidor Nginx per al Roundcube a /etc/nginx/conf.d/ (podeu anomenar el fitxer de la manera que vulgueu, però hauria de tenir una extensió .conf).

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

Afegiu la configuració següent al fitxer.

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

Deseu el fitxer i tanqueu-lo.

13. A continuació, obriu el fitxer /etc/php-fpm.d/www.conf per fer alguns canvis a la directiva web PHP-FPM.

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

Canvieu l'usuari apache a nginx a les variables següents.

user = nginx
group = nginx

A continuació, comenteu la línia listen = 127.0.0.1:9000 i configureu la variable listen per escoltar en un sòcol Unix establert al fitxer de bloc del servidor nginx:

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

A més, configureu els permisos per al sòcol UNIX, elimineu els comentaris i canvieu les línies a:

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

Un cop hàgiu acabat, deseu el fitxer i tanqueu-lo.

14. A continuació, reinicieu els serveis Nginx i PHP-FPM per aplicar els canvis recents, de la manera següent.

# systemctl restart nginx php-fpm

Pas 5: accediu a la interfície d'usuari web de Roundcube

15. Abans d'iniciar l'assistent d'instal·lació, per evitar errors de sessió, configureu els permisos adequats al directori /var/lib/php/session/. El propietari del grup per defecte és apache, canvieu-lo a nginx tal com es mostra.

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

16. Ara obriu un navegador i utilitzeu l'adreça http://mail.example.com/installer (substituïu el domini pel nom del servidor que heu definit mentre creeu un bloc de servidor Nginx per a Roundcube) per accedir al web. instal·lador. Si totes les versions de PHP, les extensions i la configuració de php.ini/.htaccess són correctes, veureu la següent captura de pantalla, feu clic a Següent per anar a la pàgina de configuracions.

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

17. La pàgina de configuracions us permet configurar la vostra instància Roundcube. Només explicarem les opcions importants per a l'abast d'aquesta guia.

A la Configuració general, definiu un nom_producte, per exemple, Example.com Webmail.

Aneu a Configuració de la base de dades, introduïu l'amfitrió de la base de dades, el nom, l'usuari i la contrasenya per connectar-vos al servidor MySQL.

A continuació, desplaceu-vos cap avall fins a la configuració IMAP i SMTP i introduïu l'adreça IP del vostre servidor IMAP i SMTP, si és el mateix servidor on esteu executant Roundcube, deixeu-lo com a \localhost i també especifiqueu altres paràmetres necessaris.

Podeu especificar altres paràmetres segons les vostres necessitats, un cop hàgiu acabat, feu clic a Crear configuració.

18. Ara hauríeu de veure un missatge que diu El fitxer de configuració s'ha desat correctament al directori /var/www/html/roundcubemail/config de la vostra instal·lació de Roundcube. Feu clic a Continuar.

19. Podeu revisar la vostra configuració des de la pàgina Prova de configuració, tal com es mostra a la captura de pantalla següent.

20. A continuació, traieu tota la carpeta de l'instal·lador (que conté fitxers que poden exposar dades de configuració sensibles com les contrasenyes del servidor i les claus de xifratge al públic) del directori arrel de Roundcube (o assegureu-vos que l'opció enable_installer a config.inc.php estigui desactivada). ).

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

21. Finalment, utilitzeu l'URL http://mail.example.com per accedir a la pàgina d'inici de sessió de Roundcube. Introduïu el vostre nom d'usuari i contrasenya per veure els vostres correus.

Roundcube és un client de correu multilingüe basat en web i amb totes les funcions àmpliament utilitzat. En aquest article, vam mostrar com instal·lar la darrera versió estable de Roundcube Webmail en un CentOS/RHEL 8/7 amb el servidor web Nginx. Si teniu cap pregunta, utilitzeu el formulari de comentaris a continuació per posar-vos en contacte amb nosaltres.