Kako instalirati Roundcube Webmail na CentOS/RHEL 8/7


Roundcube je besplatan i otvorenog koda, potpuno opremljen višejezični IMAP softver za web poštu baziran na webu, s korisničkim sučeljem sličnim aplikaciji koje je potpuno funkcionalno i prilagodljivo, te koristi najnovije web standarde. Napravljen je pomoću PHP-a i nudi punu funkcionalnost koju možete očekivati od modernog klijenta e-pošte.

Karakteristike Roundcube:

  • Višejezičan je, podržava preko 70 jezika.
  • Podržava adresar Find-as-You-Type.
  • Podržava višestruke identitete pošiljaoca.
  • Nudi sofisticiranu zaštitu privatnosti.
  • Ima adresar s punim mogućnostima s grupama i LDAP konektorima.
  • Nudi sastavljanje richtext/HTML poruka.
  • Podržava traženje poruka i kontakata.
  • Podržava Int. imena domena (IDNA).
  • Podržava manipulaciju fasciklama, deljene fascikle i ACL.
  • Proširivo korištenjem Plug-in API-ja.
  • Pruža funkciju provjere pravopisa.
  • Pruža funkcije uvoza/izvoza.
  • Ima API dodataka za fleksibilna proširenja i još mnogo toga.

Preporučeni sistemski zahtjevi:

  1. CentOS 8/RHEL 8 ili CentOS 7/RHEL 7 server sa minimalnom instalacijom.
  2. Apache ili Nginx web server
  3. PHP i MySQL/MariaDB baza podataka
  4. SMTP i IMAP server sa podrškom za IMAP4 rev1

U okviru ovog članka, pretpostavljamo da već imate pokrenut Postfix server e-pošte s virtualnim korisnicima, u suprotnom slijedite naše vodiče za podešavanje:

  1. Postavljanje Postfix mail servera i Dovecot-a s MariaDB – 1. dio
  2. Konfigurirajte korisnike virtualne domene Postfix i Dovecot – 2. dio
  3. Instalirajte i integrirajte ClamAV i SpamAssassin u Postfix Mail Server – Dio 3

Testno okruženje:

Za potrebe ovog članka, instalirat ću Roundcube Webmail na Linode CentOS VPS sa Nginx web serverom, statičkom IP adresom 192.168.0.100, i imenom hosta mail.linux-console.net.

Korak 1: Instalirajte Nginx, PHP-FPM i MariaDB u CentOS 8/7

1. Prvo počnite tako što ćete omogućiti EPEL i REMI spremišta i instalirati Nginx, PHP , PHP-FPM, i MariaDB server na vašem CentOS sistemu.

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. Nakon što ste uspješno instalirali sve pakete, pokrenite Nginx web server, omogućite mu da se automatski pokrene prilikom pokretanja i provjerite da li je pokrenut i radi.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Zatim, ako imate omogućen zaštitni zid sistema, morate otvoriti port 80 za vanjske zahtjeve.

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

4. Zatim morate konfigurirati PHP-FPM da ispravno radi. Otvorite datoteku /etc/php.ini pomoću uređivača testova na komandnoj liniji.

vim /etc/php.ini

Potražite direktivu ;cgi.fix_pathinfo=1, dekomentirajte je i postavite njenu vrijednost na 0.

cgi.fix_pathinfo=0

Također, dekomentirajte direktivu ;date.timezone i postavite njenu vrijednost na svoju vremensku zonu.

date.timezone = "Africa/Kampala"

Kada završite, sačuvajte datoteku i izađite.

5. Zatim pokrenite uslugu PHP-FPM, omogućite joj da se automatski pokrene u vrijeme pokretanja i provjerite da li je pokrenuta i radi, kako slijedi.

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

Korak 2: Osigurajte MariaDB server i kreirajte Roundecube bazu podataka

6. Sada pokrenite MariaDB uslugu koristeći sljedeće naredbe.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Zadana instalacija MariaDB-a nije sigurna. Morate pokrenuti sigurnosnu skriptu koja dolazi s binarnim paketom da biste ga osigurali. Od vas će se tražiti da postavite root lozinku, uklonite anonimne korisnike, daljinski onemogućite root prijavu i uklonite testnu bazu podataka.

mysql_secure_installation

8. Sada se prijavite na MariaDB bazu podataka, kreirajte bazu podataka za Roundecube i dodijelite korisniku odgovarajuće dozvole za bazu podataka (ne zaboravite postaviti jaku/sigurnu lozinku u proizvodno okruženje).

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. Zatim uvezite izgled tabele Roundcube u novokreiranu bazu podataka.

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

Korak 3: Preuzmite Roundcube paket

10. U ovom koraku preuzmite najnoviju stabilnu verziju (1.4.9 u vrijeme pisanja ovog teksta) Roundcube sa stranice za preuzimanje ili koristite wget program za preuzimanje komandne linije da nabavite ga, izvucite TAR datoteku i učitajte datoteke u korijen dokumenta vašeg web servera.

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. Zatim postavite odgovarajuće dozvole za Roundcube webroot datoteke.

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

Korak 4: Konfigurirajte blok Nginx servera za Roundcube Web Installer

12. Sada kreirajte blok Nginx servera za Roundcube pod /etc/nginx/conf.d/ (možete imenovati datoteku na način na koji želite, ali bi trebao imati .conf ekstenzija).

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

Dodajte sljedeću konfiguraciju u datoteku.

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

Sačuvajte datoteku i zatvorite je.

13. Zatim otvorite datoteku /etc/php-fpm.d/www.conf da napravite nekoliko promjena na PHP-FPM web direktiva.

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

Promijenite korisnika apache u nginx u sljedećim varijablama.

user = nginx
group = nginx

Zatim zakomentirajte liniju listen=127.0.0.1:9000 i postavite varijablu slušanja da sluša na Unix utičnici postavljenoj u blok fajlu nginx servera:

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

Također, postavite dozvole za UNIX socket, dekomentirajte i promijenite redove u:

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

Kada završite, sačuvajte datoteku i zatvorite je.

14. Zatim ponovo pokrenite Nginx i PHP-FPM usluge da primijenite nedavne promjene, kako slijedi.

systemctl restart nginx php-fpm

Korak 5: Pristupite Roundcube web korisničkom sučelju

15. Prije nego što pokrenete čarobnjak za instalaciju, da biste izbjegli bilo kakve greške u sesiji, postavite odgovarajuće dozvole u direktorij /var/lib/php/session/. Zadani vlasnik grupe je apache, promijenite ga u nginx kao što je prikazano.

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

16. Sada otvorite pretraživač i koristite adresu http://mail.example.com/installer (zamijenite domenu imenom servera koje ste postavili prilikom kreiranja bloka Nginx servera za Roundcube) za pristup web instalateru. Ako su sve PHP verzije, ekstenzije i postavke php.ini/.htaccess ispravne, vidjet ćete sljedeći snimak ekrana, kliknite na Dalje da biste otišli na stranicu sa konfiguracijama.

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

17. Stranica konfiguracija vam omogućava da postavite svoju Roundcube instancu. Objasnićemo samo važne opcije za opseg ovog vodiča.

Pod General Configuration, postavite product_name na primjer Example.com Webmail.

Idite na Podešavanje baze podataka, unesite host baze podataka, ime, korisnika i lozinku za povezivanje na MySQL server.

Zatim se pomaknite dolje do IMAP i SMTP postavki i unesite IP adresu vašeg IMAP i SMTP servera, ako je isti server na kojem pokrećete Roundcube, ostavite ga kao “localhost ” i također navedite druge potrebne parametre.

Možete odrediti druge postavke prema vašim potrebama, kada završite, kliknite na Kreiraj konfiguraciju.

18. Sada biste trebali vidjeti poruku koja kaže ”Konfiguracijski fajl je uspješno sačuvan u /var/www/html/roundcubemail/config direktorij vaše Roundcube instalacije. ” Kliknite na na. Nastavi.

19. Možete pregledati svoju konfiguraciju na Test config stranici kao što je prikazano na sljedećem snimku ekrana.

20. Zatim uklonite cijeli folder za instalaciju (koji sadrži datoteke koje mogu otkriti osjetljive konfiguracijske podatke kao što su lozinke servera i ključevi za šifriranje javnosti) iz korijenskog direktorija Roundcube (ili provjerite da li je enable_installer opcija u config.inc.php je onemogućena).

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

21. Konačno, koristite URL http://mail.example.com za pristup stranici za prijavu na Roundcube. Unesite svoje korisničko ime i lozinku da vidite svoju poštu.

Sažetak

Roundcube je široko korišćen, potpuno funkcionalan višejezični klijent za poštu. U ovom članku smo pokazali kako da instalirate najnoviju stabilnu verziju Roundcube Webmail na CentOS/RHEL 8/7 sa Nginx web serverom. Ako imate bilo kakvih pitanja, koristite obrazac za povratne informacije u nastavku da nas kontaktirate.