Kaip įdiegti „Roundcube Webmail“ CentOS/RHEL 8/7


Roundcube yra nemokama atvirojo kodo, visapusiška žiniatinklio daugiakalbė IMAP žiniatinklio pašto programinė įranga su į programą panašia vartotojo sąsaja, kuri yra visiškai funkcionali ir pritaikoma, ir kurioje naudojami naujausi žiniatinklio standartai. Jis sukurtas naudojant PHP ir siūlo visas funkcijas, kurių galite tikėtis iš šiuolaikinės el. pašto programos.

Roundcube savybės:

  • Jis yra daugiakalbis, palaiko daugiau nei 70 kalbų.
  • Palaiko adresų knygą „Rasti kaip įvedate“.
  • Palaiko kelias siuntėjo tapatybes.
  • Siūlo sudėtingą privatumo apsaugą.
  • Turi visas funkcijas turinčią adresų knygą su grupėmis ir LDAP jungtimis.
  • Siūlo raiškiojo teksto/HTML pranešimų kūrimą.
  • Palaiko pranešimų ir kontaktų paiešką.
  • Palaiko Int. domenų vardai (IDNA).
  • Palaiko aplankų manipuliavimą, bendrinamus aplankus ir ACL.
  • Galima išplėsti naudojant papildinio API.
  • Teikia rašybos tikrinimo funkciją.
  • Teikia importo/eksporto funkcijas.
  • Turi papildinio API lanksčiams plėtiniams ir dar daugiau.

Rekomenduojami sistemos reikalavimai:

  1. CentOS 8/RHEL 8 arba CentOS 7/RHEL 7 serveris su minimaliu diegimu.
  2. „Apache“ arba „Nginx“ žiniatinklio serveris
  3. PHP ir MySQL/MariaDB duomenų bazė
  4. SMTP ir IMAP serveris su IMAP4 rev1 palaikymu

Kalbant apie šio straipsnio apimtį, darome prielaidą, kad jau turite veikiantį „Postfix“ el. pašto serverį su virtualiais vartotojais, kitu atveju vadovaukitės mūsų sąrankos vadovais:

  1. „Postfix“ pašto serverio ir „Dovecot“ nustatymas naudojant „MariaDB“ – 1 dalis
  2. „Postfix“ ir „Dovecot“ virtualiojo domeno naudotojų konfigūravimas – 2 dalis
  3. Įdiekite ir integruokite ClamAV ir SpamAssassin į Postfix pašto serverį – 3 dalis

Bandymo aplinka:

Šiame straipsnyje aš įdiegsiu Roundcube Webmail Linode CentOS VPS su Nginx žiniatinklio serveriu, statiniu IP adresu 192.168.0.100 ir pagrindinio kompiuterio pavadinimu mail.linux-console.net.

1 veiksmas: „CentOS 8/7“ įdiekite „Nginx“, PHP-FPM ir „MariaDB“.

1. Pirmiausia įgalinkite EPEL ir REMI saugyklas ir įdiekite Nginx, PHP , PHP-FPM ir MariaDB serveris jūsų CentOS sistemoje.

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. Sėkmingai įdiegę visus paketus, paleiskite „Nginx“ žiniatinklio serverį, įgalinkite jį automatiškai paleisti įkrovos metu ir patikrinkite, ar jis veikia ir veikia.

systemctl start nginx 
systemctl enable nginx
systemctl status nginx

3. Tada, jei įgalinta sistemos užkarda, išorinėms užklausoms reikia atidaryti prievadą 80.

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

4. Tada turite sukonfigūruoti PHP-FPM, kad jis tinkamai veiktų. Atidarykite failą /etc/php.ini naudodami komandinės eilutės bandymo rengyklę.

vim /etc/php.ini

Ieškokite direktyvos ;cgi.fix_pathinfo=1, panaikinkite jos komentarą ir nustatykite jos vertę į 0.

cgi.fix_pathinfo=0

Be to, panaikinkite direktyvos ;date.timezone komentarą ir nustatykite jos reikšmę į laiko juostą.

date.timezone = "Africa/Kampala"

Baigę išsaugokite failą ir išeikite.

5. Tada paleiskite PHP-FPM paslaugą, įgalinkite ją automatiškai paleisti įkrovos metu ir patikrinkite, ar ji veikia, kaip nurodyta toliau.

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

2 veiksmas: apsaugokite „MariaDB“ serverį ir sukurkite „Roundecube“ duomenų bazę

6. Dabar paleiskite „MariaDB“ paslaugą naudodami šias komandas.

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

7. Numatytasis MariaDB diegimas yra nesaugus. Norėdami jį apsaugoti, turite paleisti saugos scenarijų, pateiktą su dvejetainiu paketu. Jūsų bus paprašyta nustatyti root slaptažodį, pašalinti anoniminius vartotojus, nuotoliniu būdu išjungti root prisijungimą ir pašalinti bandomąją duomenų bazę.

mysql_secure_installation

8. Dabar prisijunkite prie MariaDB duomenų bazės, sukurkite Roundecube duomenų bazę ir suteikite vartotojui atitinkamus duomenų bazės leidimus (nepamirškite nustatyti tvirto/saugaus slaptažodžio gamybos aplinka).

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. Tada importuokite Roundcube lentelės išdėstymą į naujai sukurtą duomenų bazę.

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

3 veiksmas: atsisiųskite Roundcube paketą

10. Atlikdami šį veiksmą, atsisiųskite naujausią stabilią Roundcube versiją (1.4.9 šio rašymo metu) iš atsisiuntimo puslapio arba naudokite komandų eilutės atsisiuntimo programą wget, kad gaukite jį, ištraukite TAR failą ir įkelkite failus į savo žiniatinklio serverio dokumento šaknį.

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. Tada nustatykite atitinkamus „Roundcube“ žiniatinklio šaknų failų leidimus.

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

4 veiksmas: sukonfigūruokite „Nginx“ serverio bloką „Roundcube Web Installer“.

12. Dabar sukurkite „Nginx“ serverio bloką „Roundcube“ adresu /etc/nginx/conf.d/ (galite pavadinti failą taip, kaip norite, bet jame turėtų būti .conf plėtinys).

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

Pridėkite šią konfigūraciją į failą.

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

Išsaugokite failą ir uždarykite jį.

13. Tada atidarykite failą /etc/php-fpm.d/www.conf, kad atliktumėte kelis PHP-FPM žiniatinklio pakeitimus direktyva.

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

Pakeiskite naudotojo apache į nginx šiuose kintamuosiuose.

user = nginx
group = nginx

Tada pakomentuokite eilutę klausymas=127.0.0.1:9000 ir nustatykite klausymo kintamąjį, kad klausytumėte Unix lizdo rinkinyje nginx serverio bloko faile:

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

Taip pat nustatykite UNIX lizdo leidimus, panaikinkite komentarus ir pakeiskite eilutes į:

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

Baigę išsaugokite failą ir uždarykite jį.

14. Tada iš naujo paleiskite Nginx ir PHP-FPM paslaugas, kad pritaikytumėte naujausius pakeitimus, kaip nurodyta toliau.

systemctl restart nginx php-fpm

5 veiksmas: pasiekite „Roundcube“ žiniatinklio vartotojo sąsają

15. Prieš paleisdami diegimo vedlį, kad išvengtumėte seanso klaidų, nustatykite atitinkamus leidimus kataloge /var/lib/php/session/. Numatytasis grupės savininkas yra apache, pakeiskite jį į nginx, kaip parodyta.

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

16. Dabar atidarykite naršyklę ir naudokite adresą http://mail.example.com/installer (pakeiskite domeną serverio pavadinimu, kurį nustatėte kurdami Nginx serverio bloką Roundcube), kad pasiektumėte žiniatinklio diegimo programą. Jei visos PHP versijos, plėtiniai ir php.ini/.htaccess nustatymai yra teisingi, pamatysite šią ekrano kopiją. Spustelėkite Kitas, kad pereitumėte į konfigūracijų puslapį.

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

17. Konfigūracijų puslapyje galite nustatyti „Roundcube“ egzempliorių. Paaiškinsime tik svarbias šio vadovo taikymo sritis.

Skiltyje Bendra konfigūracija nustatykite product_name, pvz., Example.com žiniatinklio paštas.

Eikite į Duomenų bazės sąranka, įveskite duomenų bazės prieglobą, vardą, vartotoją ir slaptažodį. > prisijungti prie MySQL serverio.

Tada slinkite žemyn iki IMAP ir SMTP nustatymų ir įveskite IMAP ir SMTP serverio IP adresą, jei jis tame pačiame serveryje, kuriame naudojate „Roundcube“, palikite jį kaip „localhost“ ir nurodykite kitus būtinus parametrus.

Galite nurodyti kitus nustatymus pagal savo poreikius. Baigę spustelėkite Sukurti konfigūraciją.

18. Dabar turėtumėte pamatyti pranešimą „Konfigūracijos failas sėkmingai išsaugotas jūsų Roundcube diegimo /var/www/html/roundcubemail/config kataloge.“ Spustelėkite Tęsti.

19. Savo konfigūraciją galite peržiūrėti Patikrinti konfigūraciją, kaip parodyta toliau esančioje ekrano kopijoje.

20. Tada iš Roundcube šakninio katalogo pašalinkite visą diegimo programos aplanką (kuriame yra failų, kurie gali viešai atskleisti neskelbtinus konfigūracijos duomenis, pvz., serverio slaptažodžius ir šifravimo raktus) (arba įsitikinkite, kad Enable_installer parinktis config.inc.php yra išjungta).

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

21. Galiausiai naudokite URL http://mail.example.com, kad pasiektumėte „Roundcube“ prisijungimo puslapį. Įveskite savo vartotojo vardą ir slaptažodį, kad peržiūrėtumėte savo laiškus.

Santrauka

Roundcube yra plačiai naudojama, visapusiška žiniatinklio daugiakalbio pašto programa. Šiame straipsnyje parodėme, kaip įdiegti naujausią stabilią Roundcube Webmail versiją CentOS/RHEL 8/7 su Nginx žiniatinklio serveriu. Jei turite klausimų, susisiekite su mumis naudodami toliau pateiktą atsiliepimų formą.