Jinsi ya kusakinisha Roundcube Webmail kwenye CentOS/RHEL 8/7


Roundcube ni programu huria na huria, inayoangaziwa kikamilifu ya mtandao wa IMAP ya lugha nyingi ya IMAP, iliyo na kiolesura cha mtumiaji kinachofanya kazi kikamilifu na kinachoweza kubinafsishwa, na hutumia viwango vya hivi punde zaidi vya wavuti. Imeundwa kwa kutumia PHP na inatoa utendakazi kamili ambao unaweza kutarajia kutoka kwa mteja wa kisasa wa barua pepe.

  • Ni ya lugha nyingi, inasaidia zaidi ya lugha 70.
  • Hutumia kitabu cha anwani cha Tafuta-kama-wewe.
  • Inaauni vitambulisho vingi vya watumaji.
  • Inatoa ulinzi wa hali ya juu wa faragha.
  • Ina kitabu kamili cha anwani kilicho na vikundi na viunganishi vya LDAP.
  • Inatoa maandishi tajiri/ utungaji wa ujumbe wa HTML.
  • Inasaidia kutafuta ujumbe na waasiliani.
  • Inasaidia Int. majina ya vikoa (IDN).
  • Inaauni upotoshaji wa folda, folda zilizoshirikiwa na ACL.
  • Inapanuliwa kwa kutumia API ya programu-jalizi.
  • Hutoa utendakazi wa kukagua tahajia.
  • Hutoa vipengele vya kuagiza/kusafirisha nje.
  • Ina API ya programu-jalizi ya viendelezi vinavyonyumbulika na mengi zaidi.

  1. Seva ya RHEL 7 iliyo na Usakinishaji mdogo.
  2. Seva ya wavuti ya Apache au Nginx
  3. PHP na hifadhidata ya MySQL/MariaDB
  4. Seva ya SMTP na IMAP yenye usaidizi wa IMAP4 rev1

Kwa upeo wa makala haya, tunadhania kuwa tayari una seva ya barua pepe ya Postfix inayoendesha na watumiaji pepe, vinginevyo, fuata usanidi wetu wa miongozo:

  1. Kusanidi Seva ya Barua ya Postfix na Dovecot na MariaDB - Sehemu ya 1
  2. Weka Mipangilio ya Watumiaji wa Kikoa cha Postfix na Dovecot - Sehemu ya 2
  3. Sakinisha na Uunganishe ClamAV na SpamAssassin kwa Seva ya Barua pepe ya Postfix - Sehemu ya 3

Kwa madhumuni ya makala haya, nitakuwa nikisakinisha Roundcube Webmail kwenye Linode CentOS VPS yenye seva ya wavuti ya Nginx, anwani ya IP tuli 192.168.0.100, na jina la mwenyeji mail.linux-console.net.

Hatua ya 1: Sakinisha Nginx, PHP-FPM, na MariaDB katika CentOS 8/7

1. Anza kwanza kwa kuwezesha hazina za EPEL na REMI na usakinishe seva ya Nginx, PHP, PHP-FPM na MariaDB kwenye mfumo wako wa 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. Mara baada ya kusakinisha vifurushi vyote kwa ufanisi, anzisha seva ya wavuti ya Nginx, iwezeshe kuanza kiotomatiki wakati wa kuwasha na uangalie ikiwa iko na inafanya kazi.

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

3. Kisha, ikiwa una firewall ya mfumo imewezeshwa, unahitaji kufungua bandari 80 kwa maombi ya nje.

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

4. Kisha, unahitaji kusanidi PHP-FPM kufanya kazi vizuri. Fungua faili /etc/php.ini ukitumia kihariri cha mtihani wa mstari wa amri.

# vim /etc/php.ini

Tafuta maagizo ;cgi.fix_pathinfo=1, yaondoe maoni na uweke thamani yake kuwa 0.

cgi.fix_pathinfo=0

Pia, achana na maagizo ;date.timezone na uweke thamani yake kwa saa za eneo lako.

date.timezone = "Africa/Kampala"

Mara tu ukimaliza, hifadhi faili na uondoke.

5. Kisha anza huduma ya PHP-FPM, iwezeshe iwashe kiotomatiki wakati wa kuwasha, na uangalie ikiwa iko na inafanya kazi, kama ifuatavyo.

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

Hatua ya 2: Salama Seva ya MariaDB na Unda Hifadhidata ya Roundecube

6. Sasa anza huduma ya MariaDB kwa kutumia amri zifuatazo.

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

7. Usakinishaji chaguo-msingi wa MariaDB si salama. Unahitaji kuendesha hati ya usalama inayokuja na kifurushi cha binary, ili kukilinda. Utaulizwa kuweka nenosiri la msingi, kuondoa watumiaji wasiojulikana, kuzima kuingia kwa mizizi kwa mbali, na kuondoa hifadhidata ya majaribio.

# mysql_secure_installation

8. Sasa ingia kwenye hifadhidata ya MariaDB, unda hifadhidata ya Roundecube, na mpe mtumiaji ruhusa zinazofaa kwenye hifadhidata (kumbuka kuweka nenosiri thabiti/salama katika mazingira ya uzalishaji).

# 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. Kisha, ingiza mpangilio wa jedwali la Roundcube kwenye hifadhidata mpya iliyoundwa.

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

Hatua ya 3: Pakua Kifurushi cha Roundcube

10. Katika hatua hii, pakua toleo thabiti la hivi punde (1.4.9 wakati wa uandishi huu) la Roundcube kutoka kwa kipakuzi cha mstari wa amri ya wget ili kuipata, toa faili ya TAR, na upakie faili kwenye mzizi wa hati ya seva yako ya wavuti. .

# 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. Kisha, weka ruhusa zinazofaa kwenye faili za Roundcube webroot.

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

Hatua ya 4: Sanidi Kizuizi cha Seva ya Nginx Kwa Kisakinishi cha Wavuti cha Roundcube

12. Sasa unda kizuizi cha seva ya Nginx kwa Roundcube chini ya /etc/nginx/conf.d/ (unaweza kutaja faili jinsi unavyotaka lakini inapaswa kuwa na kiendelezi cha .conf).

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

Ongeza usanidi ufuatao kwenye faili.

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

Hifadhi faili na uifunge.

13. Kisha, fungua faili /etc/php-fpm.d/www.conf kufanya mabadiliko machache kwenye maelekezo ya wavuti ya PHP-FPM.

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

Badilisha apache ya mtumiaji kuwa nginx katika anuwai zifuatazo.

user = nginx
group = nginx

Kisha toa maoni yako kwenye mstari sikiliza = 127.0.0.1:9000 na uweke utofauti wa kusikiliza kusikiliza kwenye soketi ya Unix iliyowekwa kwenye faili ya kuzuia seva ya nginx:

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

Pia, weka ruhusa za tundu la UNIX, futa maoni na ubadilishe mistari kuwa:

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

Mara tu unapomaliza, hifadhi faili na uifunge.

14. Kisha anzisha upya huduma za Nginx na PHP-FPM ili kutumia mabadiliko ya hivi karibuni, kama ifuatavyo.

# systemctl restart nginx php-fpm

Hatua ya 5: Fikia Roundcube Web UI

15. Kabla ya kuanza mchawi wa kusakinisha, ili kuepuka makosa yoyote ya kikao, weka ruhusa zinazofaa kwenye saraka /var/lib/php/session/. Mmiliki chaguo-msingi wa kikundi ni apache, badilisha hadi nginx kama inavyoonyeshwa.

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

16. Sasa fungua kivinjari na utumie anwani http://mail.example.com/installer (badilisha kikoa na jina la seva uliloweka wakati wa kuunda block ya seva ya Nginx kwa Roundcube) kufikia wavuti. kisakinishi. Ikiwa matoleo yote ya PHP, viendelezi, na mipangilio ya php.ini/.htaccess ni sahihi, utaona skrini ifuatayo, bofya Inayofuata ili kwenda kwenye ukurasa wa usanidi.

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

17. Ukurasa wa usanidi hukuruhusu kusanidi mfano wako wa Roundcube. Tutaelezea tu chaguo muhimu kwa upeo wa mwongozo huu.

Chini ya Usanidi wa Jumla, weka product_name kwa mfano Example.com Webmail.

Nenda kwa usanidi wa Hifadhidata, ingiza mwenyeji wa hifadhidata, jina, mtumiaji na nenosiri ili kuunganisha kwenye seva ya MySQL.

Kisha telezesha chini hadi kwenye mipangilio ya IMAP na SMTP na uweke anwani ya IP ya seva yako ya IMAP na SMTP, ikiwa ni seva ile ile unayotumia Roundcube, iache kama \localhost na pia ubainishe vigezo vingine muhimu.

Unaweza kubainisha mipangilio mingine kulingana na mahitaji yako, ukishamaliza, bofya Unda Usanidi.

18. Unapaswa sasa kuona ujumbe unaosema Faili ya usanidi ilihifadhiwa kwa mafanikio kwenye /var/www/html/roundcubemail/config directory ya usakinishaji wako wa Roundcube. Bonyeza Endelea.

19. Unaweza kukagua usanidi wako kutoka kwa ukurasa wa usanidi wa Jaribio kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

20. Kisha, ondoa folda nzima ya kisakinishi (ambayo ina faili zinazoweza kufichua data nyeti ya usanidi kama vile nenosiri la seva na vitufe vya usimbaji kwa umma) kutoka kwa saraka ya mizizi ya Roundcube (au hakikisha kuwa chaguo la enable_installer limezimwa. )

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

21. Hatimaye, tumia URL http://mail.example.com kufikia ukurasa wa kuingia wa Roundcube. Ingiza jina lako la mtumiaji na nenosiri ili kutazama barua pepe zako.

Roundcube ni mteja wa barua pepe wa lugha nyingi unaotumika sana, unaoangaziwa kikamilifu na mtandao. Katika nakala hii, tulionyesha jinsi ya kusakinisha toleo la hivi punde la Roundcube Webmail kwenye CentOS/RHEL 8/7 na seva ya wavuti ya Nginx. Ikiwa una maswali yoyote, tumia fomu ya maoni iliyo hapa chini ili kuwasiliana nasi.