CentOS/RHEL 8/7-de tegelek web sahypasyny nädip gurmaly


“Roundcube”, doly işleýän we düzülip bilinýän we iň täze web standartlaryny ulanýan programma meňzeş ulanyjy interfeýsi bilen erkin we açyk çeşme, doly aýratynlykly web esasly köp dilli IMAP webmail programma üpjünçiligi. PHP ulanyp guruldy we häzirki zaman e-poçta müşderisinden garaşyp boljak doly funksiýany hödürleýär.

  • Köp dilli, 70-den gowrak dili goldaýar.
  • “Find-as-type” adres kitabyny goldaýar.
  • Birnäçe iberijiniň şahsyýetini goldaýar.
  • Çylşyrymly gizlinligi goramagy teklip edýär.
  • Toparlar we LDAP birleşdirijileri bilen doly aýratynlykly adres kitaby bar.
  • Richtext/HTML habary düzmegi hödürleýär.
  • Habarlary we aragatnaşyklary gözlemegi goldaýar.
  • Int-i goldaýar. domen atlary (IDNA).
  • Papka manipulýasiýasyny, paýlaşylan bukjalary we ACL-i goldaýar.
  • Plug-in API ulanyp giňeldilýär.
  • Jady barlamak funksiýasyny üpjün edýär.
  • Import/eksport funksiýalaryny üpjün edýär.
  • Çeýe giňeltmeler we başga-da köp zatlar üçin plugin API bar.

  1. Minimal gurnamaly RHEL 7 serweri.
  2. Apache ýa-da Nginx web serweri
  3. PHP we MySQL/MariaDB maglumat bazasy
  4. IMAP4 rev1 goldawy bilen SMTP we IMAP serweri

Bu makalanyň çäginde, eýýäm wirtual ulanyjylar bilen işleýän Postfix e-poçta serweriňiz bar diýip çaklaýarys, ýogsam, gollanmalarymyzy düzüň:

  1. MariaDB bilen Postfiks poçta serwerini we kepderi gurmak - 1-nji bölüm
  2. Postfiks we Dovecot wirtual domen ulanyjylaryny sazlaň - 2-nji bölüm
  3. ClamAV we SpamAssassin-i Postfiks poçta serwerine guruň we birleşdiriň - 3-nji bölüm

Bu makalanyň maksady üçin, Nginx web serweri, statiki IP adresi 192.168.0.100 we host ady mail.linux-console.net bilen Linode CentOS VPS-de “Roundcube Webmail” guraryn.

1-nji ädim: Centgin 8/7-de Nginx, PHP-FPM we MariaDB guruň

1. Ilki bilen EPEL we REMI ammarlaryny işledip başlaň we CentOS ulgamyňyza Nginx, PHP, PHP-FPM we MariaDB serwerini guruň.

# 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. thehli paketleri üstünlikli guranyňyzdan soň, Nginx web serwerini işe giriziň, ýükleme wagtynda awtomatiki başlamaga mümkinçilik beriň we işleýändigini ýa-da işlemeýändigini barlaň.

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

3. Ondan soň, ulgam gorag diwary açyk bolsa, daşarky islegler üçin 80-nji porty açmaly.

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

4. Ondan soň, dogry işlemek üçin PHP-FPM sazlamaly. Buýruk setiri synag redaktoryny ulanyp /etc/php.ini faýly açyň.

# vim /etc/php.ini

; cgi.fix_pathinfo=1 görkezmesini gözläň, ony açyň we bahasyny 0-a belläň.

cgi.fix_pathinfo=0

Mundan başga-da, ; date.timezone direktiwasyny açyň we onuň bahasyny wagt guşagyňyza belläň.

date.timezone = "Africa/Kampala"

Doneerine ýetirilenden soň faýly ýazdyryň we çykyň.

5. Soňra PHP-FPM hyzmatyny başlaň, ýükleme wagtynda awtomatiki başlamaga mümkinçilik beriň we aşakdaky ýaly işleýändigini ýa-da işlemeýändigini barlaň.

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

2-nji ädim: MariaDB serwerini ygtybarly ediň we tegelek maglumat bazasyny dörediň

6. Indi aşakdaky buýruklary ulanyp, MariaDB hyzmatyny başlaň.

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

7. Adaty MariaDB gurnama ygtybarly däl. Ony goramak üçin ikilik bukjasy bilen gelýän howpsuzlyk skriptini işletmeli. Sizden kök paroly bellemek, näbelli ulanyjylary aýyrmak, kök girişini uzakdan öçürmek we synag bazasyny aýyrmak soralar.

# mysql_secure_installation

8. Indi “MariaDB” maglumatlar bazasyna giriň, “Roundecube” üçin maglumat bazasyny dörediň we ulanyja maglumat bazasyndaky degişli rugsatlary beriň (önümçilik gurşawynda güýçli/ygtybarly parol goýmagy ýatdan çykarmaň).

# 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. Ondan soň, täze döredilen maglumat bazasyna “Roundcube” tablisasynyň ýerleşişini import ediň.

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

3-nji ädim: Tegelek paketini göçürip alyň

10. Bu ädimde, almak, TAR faýlyny çykarmak we faýllary web serwer resminama köküňize ýüklemek üçin wget buýruk setirini göçürip alyjydan “Roundcube” -yň iň soňky durnukly wersiýasyny (bu ýazylan wagty 1.4.9) göçürip alyň. .

# 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. Ondan soň, “Roundcube” webroot faýllaryna degişli rugsatlary belläň.

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

4-nji ädim: Tegelek web gurnaýjy üçin Nginx serwer blokuny sazlaň

12. Indi /etc/nginx/conf.d/ aşagyndaky “Roundcube” üçin Nginx serwer blokuny dörediň (faýly isleýşiňiz ýaly atlandyryp bilersiňiz, ýöne .conf giňeltmesi bolmaly).

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

Faýla aşakdaky konfigurasiýany goşuň.

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

Faýly ýazdyryň we ýapyň.

13. Ondan soň, PHP-FPM web direktiwasyna birnäçe üýtgeşme girizmek üçin /etc/php-fpm.d/www.conf faýly açyň.

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

Aşakdaky üýtgeýjilerde ulanyjy apache-ni nginx-e üýtgediň.

user = nginx
group = nginx

Soňra diňlemek=127.0.0.1:9000 setirine düşündiriş beriň we nginx serwer blok faýlynda Unix rozetkasynda diňlemek üçin diňleýjini üýtgediň:

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

Şeýle hem, UNIX rozetkasyna rugsatlary düzüň we setirleri üýtgediň:

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

Gutaransoň, faýly ýazdyryň we ýapyň.

14. Soňra soňky üýtgeşmeleri aşakdaky ýaly ulanmak üçin Nginx we PHP-FPM hyzmatlaryny täzeden açyň.

# systemctl restart nginx php-fpm

5-nji ädim: “Roundcube Web UI” -e giriň

15. Gurmak ussasyna başlamazdan ozal, sessiýa ýalňyşlyklarynyň öňüni almak üçin/var/lib/php/session/katalogyna degişli rugsatlary belläň. Adaty toparyň eýesi apache, görkezilişi ýaly nginx-e üýtgediň.

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

16. Indi brauzeri açyň we internete girmek üçin http://mail.example.com/installer adresini ulanyň (Roundcube üçin Nginx serwer blokyny döredeniňizde domeni bellän serweriňiziň ady bilen çalşyň) gurnaýjy. PHP wersiýalarynyň, giňeltmeleriniň we php.ini/.htaccess sazlamalarynyň hemmesi dogry bolsa, aşakdaky skrinshoty görersiňiz, konfigurasiýa sahypasyna gitmek üçin Indiki düwmesine basyň.

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

17. Sazlamalar sahypasy, “Roundcube” mysalyňyzy düzmäge mümkinçilik berýär. Diňe şu gollanmanyň çäkleri üçin möhüm wariantlary düşündireris.

Umumy konfigurasiýa boýunça önümiň adyny düzüň, mysal üçin Mysal.com Webmail.

Maglumat bazasyny gurnamaga giriň, MySQL serwerine birikmek üçin maglumat bazasynyň eýesini, adyny, ulanyjysyny we parolyny giriziň.

Soňra IMAP we SMTP sazlamalaryna aýlaň we IMAP we SMTP serweriňiziň IP adresini giriziň, eger Roundcube-da işleýän şol bir serweriňiz bolsa, ony ýerlihost görnüşinde goýuň we beýleki zerur parametrleri görkeziň.

Islegleriňize görä beýleki sazlamalary kesgitläp bilersiňiz, gutaransoň, “Config Create” -e basyň.

18. Indi Konfigurasiýa faýly, Roundcube gurnamagyňyzyň/var/www/html/roundcubemail/config katalogyna üstünlikli ýatda saklandy diýen habary görmeli. Dowam et düwmesine basyň.

19. Aşakdaky skrinshotda görkezilişi ýaly Test konfigurasiýa sahypasyndan konfigurasiýaňyzy gözden geçirip bilersiňiz.

20. Ondan soň, “Roundcube” kök katalogyndan tutuş gurnama bukjasyny (serwer parollary we şifrlemek açarlary ýaly duýgur konfigurasiýa maglumatlary açyp bilýän faýllary öz içine alýar) aýyryň (ýa-da config.inc.php-de enable_installer opsiýasynyň ýapykdygyna göz ýetiriň. ).

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

21. Netijede, “Roundcube” giriş sahypasyna girmek üçin http://mail.example.com URL-ni ulanyň. Poçtaňyzy görmek üçin ulanyjy adyňyzy we parolyňyzy giriziň.

“Roundcube” giňden ulanylýan, doly aýratynlykly web esasly köp dilli poçta müşderisi. Bu makalada, Nginx web serweri bilen CentOS/RHEL 8/7-de Roundcube Webmail-iň iň soňky durnukly wersiýasyny nädip gurmalydygyny görkezdik. Soraglaryňyz bar bolsa, bize habar bermek üçin aşakdaky seslenme formasyny ulanyň.