Kako instalirati Roundcube Webmail na CentOS/RHEL 8/7


Roundcube je besplatni višejezični softver za web-poštu IMAP s punim značajkama otvorenog izvornog koda, s korisničkim sučeljem nalik aplikaciji koje je potpuno funkcionalno i prilagodljivo te koristi najnovije web standarde. Izgrađen je pomoću PHP-a i nudi punu funkcionalnost koju možete očekivati od modernog klijenta e-pošte.

Značajke Roundcubea:

  • Višejezičan je, podržava preko 70 jezika.
  • Podržava adresar Find-as-you-type.
  • Podržava višestruke identitete pošiljatelja.
  • Nudi sofisticiranu zaštitu privatnosti.
  • Ima potpuno opremljen adresar s grupama i LDAP konektorima.
  • Nudi sastavljanje obogaćenog teksta/HTML poruke.
  • Podržava traženje poruka i kontakata.
  • Podržava Int. imena domena (IDNA).
  • Podržava manipulaciju mapama, dijeljene mape i ACL.
  • Proširivo pomoću Plug-in API-ja.
  • Omogućuje funkciju provjere pravopisa.
  • Omogućuje funkcije uvoza/izvoza.
  • Ima plug-in API za fleksibilna proširenja i još mnogo toga.

Preporučeni sistemski zahtjevi:

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

U okviru ovog članka pretpostavljamo da već imate pokrenut Postfix poslužitelj e-pošte s virtualnim korisnicima, u suprotnom slijedite naše upute za postavljanje:

  1. Postavljanje Postfix Mail Servera i Dovecota 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

Okruženje za testiranje:

U svrhu ovog članka, instalirat ću Roundcube Webmail na Linode CentOS VPS s Nginx web poslužiteljem, statičkom IP adresom 192.168.0.100, i nazivom hosta mail.linux-console.net.

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

1. Prvo započnite omogućavanjem spremišta EPEL i REMI i instalirajte Nginx, PHP , PHP-FPM, i MariaDB poslužitelj na vašem CentOS sustavu.

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 poslužitelj, omogućite mu automatsko pokretanje prilikom dizanja i provjerite radi li.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Zatim, ako imate omogućen vatrozid sustava, trebate otvoriti port 80 za vanjske zahtjeve.

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

4. Zatim trebate konfigurirati PHP-FPM da ispravno radi. Otvorite datoteku /etc/php.ini koristeći test editor naredbenog retka.

vim /etc/php.ini

Potražite direktivu ;cgi.fix_pathinfo=1, uklonite je iz komentara i postavite joj vrijednost na 0.

cgi.fix_pathinfo=0

Također uklonite komentare s direktive ;date.timezone i postavite njezinu vrijednost na svoju vremensku zonu.

date.timezone = "Africa/Kampala"

Kada završite, spremite datoteku i izađite.

5. Zatim pokrenite uslugu PHP-FPM, omogućite joj automatsko pokretanje prilikom podizanja sustava i provjerite radi li kako slijedi.

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

Korak 2: Osigurajte MariaDB poslužitelj i stvorite Roundecube bazu podataka

6. Sada pokrenite uslugu MariaDB pomoću sljedećih naredbi.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

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

mysql_secure_installation

8. Sada se prijavite u bazu podataka MariaDB, stvorite bazu podataka za Roundecube i dodijelite korisniku odgovarajuća dopuštenja 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 tablice Roundcube u novostvorenu bazu podataka.

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

Korak 3: Preuzmite paket Roundcube

10. U ovom koraku preuzmite najnoviju stabilnu verziju (1.4.9 u vrijeme pisanja ovog teksta) Roundcubea sa stranice za preuzimanje ili upotrijebite wget alat za preuzimanje naredbenog retka za nabavite ga, izdvojite TAR datoteku i učitajte datoteke u korijenski dokument vašeg web poslužitelja.

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 Nginx poslužiteljski blok za Roundcube Web Installer

12. Sada stvorite blok Nginx poslužitelja za Roundcube pod /etc/nginx/conf.d/ (datoteku možete nazvati kako želite, ali bi trebala imati .conf proširenje).

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

Spremite datoteku i zatvorite je.

13. Zatim otvorite datoteku /etc/php-fpm.d/www.conf kako biste napravili nekoliko promjena na webu PHP-FPM direktiva.

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

Promijenite korisnički apache u nginx u sljedećim varijablama.

user = nginx
group = nginx

Zatim komentirajte redak listen=127.0.0.1:9000 i postavite slušanje varijable za slušanje na skupu Unix utičnica u blok datoteci nginx poslužitelja:

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

Također, postavite dopuštenja za UNIX utičnicu, uklonite komentare i promijenite retke u:

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

Kada završite, spremite datoteku i zatvorite je.

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

systemctl restart nginx php-fpm

Korak 5: Pristupite web sučelju Roundcube

15. Prije nego što pokrenete čarobnjaka za instalaciju, da biste izbjegli greške u sesiji, postavite odgovarajuće dozvole za 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 preglednik i upotrijebite adresu http://mail.example.com/installer (zamijenite domenu s nazivom poslužitelja koji ste postavili prilikom stvaranja bloka Nginx poslužitelja za Roundcube) za pristup web instalacijskom programu. Ako su sve PHP verzije, ekstenzije i postavke php.ini/.htaccess ispravne, vidjet ćete sljedeću snimku zaslona, kliknite Dalje za odlazak na stranicu s konfiguracijama.

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

17. Stranica s konfiguracijama omogućuje vam postavljanje vaše Roundcube instance. Objasnit ćemo samo važne opcije za opseg ovog vodiča.

Pod Općom konfiguracijom postavite product_name, na primjer Example.com Webmail.

Idite na Podešavanje baze podataka, unesite domaćina baze podataka, ime, korisnika i zaporku > za spajanje na MySQL poslužitelj.

Zatim se pomaknite prema dolje do postavki IMAP i SMTP i unesite IP adresu vašeg IMAP i SMTP poslužitelja, ako postoji isti poslužitelj na kojem izvodite Roundcube, ostavite ga kao “localhost” i navedite ostale potrebne parametre.

Možete odrediti druge postavke prema svojim potrebama, kada završite, kliknite na Create Config.

18. Sada biste trebali vidjeti poruku koja kaže ”Konfiguracijska datoteka je uspješno spremljena u /var/www/html/roundcubemail/config direktorij vaše Roundcube instalacije. ” Kliknite na Nastavi.

19. Možete pregledati svoju konfiguraciju na stranici za probnu konfiguraciju kao što je prikazano na sljedećoj snimci zaslona.

20. Zatim uklonite cijelu mapu programa za instalaciju (koja sadrži datoteke koje mogu izložiti javnosti osjetljive konfiguracijske podatke poput lozinki poslužitelja i ključeva za enkripciju) iz korijenskog direktorija Roundcubea (ili provjerite 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 biste vidjeli svoju poštu.

Sažetak

Roundcube široko je korišten, višejezični klijent e-pošte temeljen na svim značajkama. U ovom smo članku pokazali kako instalirati najnoviju stabilnu verziju Roundcube Webmail na CentOS/RHEL 8/7 s Nginx web poslužiteljem. Ako imate bilo kakvih pitanja, upotrijebite obrazac za povratne informacije u nastavku da biste nas kontaktirali.