Hvordan installere Roundcube Webmail på CentOS/RHEL 8/7


Roundcube er en gratis og åpen kildekode, fullt utstyrt nettbasert flerspråklig IMAP webmail-programvare, med et applikasjonslignende brukergrensesnitt som er fullt funksjonelt og tilpassbart, og bruker de nyeste nettstandardene. Den er bygget ved hjelp av PHP og tilbyr full funksjonalitet som du kan forvente fra en moderne e-postklient.

Roundcube-funksjoner:

  • Den er flerspråklig, støtter over 70 språk.
  • Støtter en Finn-som-du-skriver-adressebok.
  • Støtter flere avsenderidentiteter.
  • Tilbyr sofistikert personvern.
  • Har en fullverdig adressebok med grupper og LDAP-kontakter.
  • Tilbyr riktekst/HTML-meldinger.
  • Støtter søk etter meldinger og kontakter.
  • Støtter Int. domenenavn (IDNA).
  • Støtter mappemanipulering, delte mapper og ACL.
  • Kan utvides ved hjelp av Plug-in API.
  • Gir stavekontrollfunksjonalitet.
  • Gir import/eksport funksjoner.
  • Har en plug-in API for fleksible utvidelser og mye mer.

Anbefalte systemkrav:

  1. En CentOS 8/RHEL 8- eller CentOS 7/RHEL 7-server med minimal installasjon.
  2. Apache eller Nginx webserver
  3. PHP og MySQL/MariaDB database
  4. SMTP- og IMAP-server med støtte for IMAP4 rev1

For omfanget av denne artikkelen antar vi at du allerede har en kjørende Postfix e-postserver med virtuelle brukere, ellers følger du oppsettet av guidene våre:

  1. Sette opp Postfix Mail Server og Dovecot med MariaDB – Del 1
  2. Konfigurer Postfix og Dovecot Virtual Domain Users – Del 2
  3. Installer og integrer ClamAV og SpamAssassin til Postfix Mail Server – Del 3

Testmiljø:

For formålet med denne artikkelen vil jeg installere Roundcube Webmail på en Linode CentOS VPS med en Nginx-nettserver, statisk IP-adresse 192.168.0.100, og vertsnavn mail.linux-console.net.

Trinn 1: Installer Nginx, PHP-FPM og MariaDB i CentOS 8/7

1. Begynn først med å aktivere EPEL- og REMI-lagre og installer Nginx, PHP , PHP-FPM, og MariaDB-server på CentOS-systemet ditt.

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. Når du har installert alle pakkene, start Nginx-nettserveren, aktiver den til å starte automatisk ved oppstart og sjekk om den er oppe og kjører.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Deretter, hvis du har en systembrannmur aktivert, må du åpne port 80 for eksterne forespørsler.

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

4. Deretter må du konfigurere PHP-FPM for å fungere ordentlig. Åpne filen /etc/php.ini ved hjelp av et kommandolinjetestredigeringsprogram.

vim /etc/php.ini

Se etter direktivet ;cgi.fix_pathinfo=1, fjern kommentarer og sett verdien til 0.

cgi.fix_pathinfo=0

Fjern også kommentaren til direktivet ;date.timezone og angi verdien til tidssonen.

date.timezone = "Africa/Kampala"

Når du er ferdig, lagre filen og avslutt.

5. Start deretter PHP-FPM-tjenesten, aktiver den til å starte automatisk ved oppstart, og sjekk om den er oppe og går, som følger.

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

Trinn 2: Sikre MariaDB-serveren og opprett Roundecube-database

6. Start nå MariaDB-tjenesten ved å bruke følgende kommandoer.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Standard MariaDB-installasjonen er usikker. Du må kjøre sikkerhetsskriptet som følger med den binære pakken, for å sikre den. Du vil bli bedt om å angi et root-passord, fjerne anonyme brukere, deaktivere root-pålogging eksternt og fjerne testdatabasen.

mysql_secure_installation

8. Logg nå på MariaDB-databasen, opprett en database for Roundecube, og gi brukeren passende tillatelser på databasen (husk å angi et sterkt/sikkert passord i en produksjonsmiljø).

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. Deretter importerer du Roundcube-tabelloppsettet til den nyopprettede databasen.

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

Trinn 3: Last ned Roundcube-pakken

10. I dette trinnet laster du ned den siste stabile versjonen (1.4.9 når dette skrives) av Roundcube fra nedlastingssiden eller bruk wget kommandolinjenedlaster for å hent den, pakk ut TAR-filen og last opp filene til dokumentroten til webserveren.

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. Angi deretter de riktige tillatelsene for Roundcube webroot-filene.

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

Trinn 4: Konfigurer Nginx Server Block For Roundcube Web Installer

12. Opprett nå en Nginx-serverblokk for Roundcube under /etc/nginx/conf.d/ (du kan navngi filen slik du vil, men den skal ha en .conf-utvidelsen).

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

Legg til følgende konfigurasjon i filen.

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

Lagre filen og lukk den.

13. Deretter åpner du filen /etc/php-fpm.d/www.conf for å gjøre noen endringer på PHP-FPM web direktiv.

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

Endre brukeren apache til nginx i følgende variabler.

user = nginx
group = nginx

Kommenter deretter linjen listen=127.0.0.1:9000 og still inn lyttevariabelen til å lytte på en Unix-sokkel satt i nginx-serverblokkfilen:

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

Sett også tillatelsene for UNIX-socket, avkommenter og endre linjene til:

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

Når du er ferdig, lagre filen og lukk den.

14. Start deretter Nginx- og PHP-FPM-tjenestene på nytt for å bruke de siste endringene, som følger.

systemctl restart nginx php-fpm

Trinn 5: Få tilgang til Roundcube Web UI

15. Før du starter installasjonsveiviseren, for å unngå sesjonsfeil, angi de riktige tillatelsene i katalogen /var/lib/php/session/. Standard gruppeeier er apache, endre den til nginx som vist.

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

16. Åpne nå en nettleser og bruk adressen http://mail.example.com/installer (erstatt domene med servernavnet du anga mens du opprettet en Nginx-serverblokk for Roundcube) for å få tilgang til nettinstallasjonsprogrammet. Hvis alle PHP-versjoner, utvidelser og php.ini/.htaccess-innstillinger er riktige, vil du se følgende skjermbilde, klikk på Neste for å gå til konfigurasjonssiden.

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

17. Konfigurasjonssiden lar deg sette opp Roundcube-forekomsten din. Vi vil bare forklare de viktige alternativene for omfanget av denne veiledningen.

Angi et produktnavn under Generell konfigurasjon, for eksempel Example.com Webmail.

Gå til Databaseoppsett, skriv inn databaseverten, navnet, brukeren og passordet > for å koble til MySQL-serveren.

Rull deretter ned til IMAP- og SMTP-innstillingene og skriv inn IP-adressen til IMAP- og SMTP-serveren din, hvis den den samme serveren som du kjører Roundcube på, la den være "localhost " og spesifiser også andre nødvendige parametere.

Du kan spesifisere andre innstillinger i henhold til dine behov. Når du er ferdig, klikker du på Opprett konfigurasjon.

18. Du skal nå se en melding som sier "Konfigurasjonsfilen ble lagret i /var/www/html/roundcubemail/config-katalogen til Roundcube-installasjonen din. " Klikk på Fortsett.

19. Du kan gå gjennom konfigurasjonen din fra Test konfigurasjonssiden som vist i følgende skjermbilde.

20. Deretter fjerner du hele installasjonsmappen (som inneholder filer som kan avsløre sensitive konfigurasjonsdata som serverpassord og krypteringsnøkler for offentligheten) fra Roundcube-rotkatalogen (eller sørg for at enable_installer-alternativet i config.inc.php er deaktivert).

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

21. Til slutt, bruk URL-en http://mail.example.com for å få tilgang til Roundcube-påloggingssiden. Skriv inn brukernavn og passord for å se e-postene dine.

Sammendrag

Roundcube er en mye brukt, fullt utstyrt nettbasert flerspråklig e-postklient. I denne artikkelen viste vi hvordan du installerer den siste stabile versjonen av Roundcube Webmail på en CentOS/RHEL 8/7 med Nginx-nettserveren. Hvis du har spørsmål, bruk tilbakemeldingsskjemaet nedenfor for å nå oss.