Bii o ṣe le Fi Roundcube Webmail sori CentOS/RHEL 8/7


Roundcube jẹ ọfẹ ọfẹ ati ṣiṣi, orisun ẹya ni kikun sọ di pupọ sọfitiwia wẹẹbu IMAP webmail, pẹlu ohun elo bi iru olumulo ti o jẹ iṣẹ ni kikun ati ti aṣa, ati lilo awọn iṣedede wẹẹbu tuntun. O ti kọ nipa lilo PHP ati pe o nfun iṣẹ ṣiṣe ni kikun ti o le nireti lati ọdọ alabara imeeli ti ode oni.

  • O jẹ ede oniruru, o ṣe atilẹyin fun awọn ede ti o ju 70 lọ.
  • Ṣe atilẹyin iwe adirẹsi adirẹsi-ri-bi-iru.
  • Ṣe atilẹyin ọpọlọpọ awọn idanimọ Olu.
  • Nfun ni aabo aabo aṣiri ọlọgbọn.
  • Ni iwe adirẹsi ti o ni ifihan ni kikun pẹlu awọn ẹgbẹ ati awọn asopọ LDAP.
  • Nfun ọrọ-ọrọ ọrọ ọrọ/HTML kika.
  • Ṣe atilẹyin wiwa fun awọn ifiranṣẹ ati awọn olubasọrọ.
  • Ṣe atilẹyin Int. awọn orukọ ìkápá (IDNA).
  • Ṣe atilẹyin ifọwọyi folda, awọn folda ti a pin, ati ACL.
  • Afikun ni lilo API Pilogi-in.
  • Pese iṣẹ ṣiṣe ṣayẹwo yewo.
  • Pese awọn iṣẹ gbigbe wọle/okeere.
  • Ni API ohun itanna fun awọn amugbooro rirọpo ati pupọ diẹ sii.

  1. Olupin RHEL 7 pẹlu Pipin Pọọku.
  2. Apache tabi Nginx webserver
  3. PHP ati ibi ipamọ data MySQL/MariaDB
  4. SMTP ati olupin IMAP pẹlu atilẹyin IMAP4 rev1

Fun aaye ti nkan yii, a ro pe o ti ni olupin imeeli Postfix ti n ṣiṣẹ pẹlu awọn olumulo oni-nọmba, bibẹkọ, tẹle iṣeto awọn itọsọna wa:

  1. Ṣiṣeto Olupin Ifiranṣẹ Postfix ati Dovecot pẹlu MariaDB - Apá 1
  2. Tunto Postfix ati Dovecot Awọn olumulo Aṣẹ Foju - Apá 2
  3. Fi sori ẹrọ ati ṣepọ ClamAV ati SpamAssassin si Olupin Ifiranṣẹ Postfix - Apá 3

Fun idi ti nkan yii, Emi yoo fi Roundcube Webmail sori ẹrọ lori Linode CentOS VPS pẹlu olupin ayelujara Nginx, adiresi IP aimi 192.168.0.100, ati orukọ olupin host.linux-console.net.

Igbesẹ 1: Fi Nginx, PHP-FPM, ati MariaDB sii ni CentOS 8/7

1. Akọkọ bẹrẹ nipa muu ṣiṣẹ EPEL ati awọn ibi ipamọ REMI ki o fi Nginx, PHP, PHP-FPM, ati olupin MariaDB sori ẹrọ eto CentOS rẹ.

# 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. Lọgan ti o ba ti fi gbogbo awọn idii sii ni ifijišẹ, bẹrẹ olupin ayelujara Nginx, jẹ ki o bẹrẹ ni adaṣe ni akoko bata ati ṣayẹwo ti o ba n ṣiṣẹ.

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

3. Itele, ti o ba ni ogiriina eto sise, o nilo lati ṣii ibudo 80 fun awọn ibeere ita.

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

4. Itele, o nilo lati tunto PHP-FPM lati ṣiṣẹ daradara. Ṣii faili /etc/php.ini nipa lilo olootu idanwo laini aṣẹ kan.

# vim /etc/php.ini

Wa fun itọsọna ; cgi.fix_pathinfo = 1 , ṣoki rẹ ki o ṣeto iye rẹ si 0.

cgi.fix_pathinfo=0

Pẹlupẹlu, ṣoki aṣẹ naa ; date.timezone ki o ṣeto iye rẹ si agbegbe aago rẹ.

date.timezone = "Africa/Kampala"

Lọgan ti o ba ti ṣetan, ṣafipamọ faili naa ki o jade.

5. Lẹhinna bẹrẹ iṣẹ PHP-FPM, mu ki o bẹrẹ ni adaṣe ni akoko bata, ki o ṣayẹwo boya o ti n ṣiṣẹ ati ṣiṣe, bii atẹle.

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

Igbesẹ 2: Ni aabo olupin MariaDB ati Ṣẹda aaye data Roundecube

6. Bayi bẹrẹ iṣẹ MariaDB ni lilo awọn ofin wọnyi.

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

7. Fifi sori ẹrọ fifi sori ẹrọ MariaDB aiṣe aabo. O nilo lati ṣiṣe iwe afọwọkọ aabo eyiti o wa pẹlu package alakomeji, lati ni aabo rẹ. A yoo beere lọwọ rẹ lati ṣeto ọrọigbaniwọle gbongbo kan, yọ awọn olumulo alailorukọ kuro, mu wiwọle root kuro latọna jijin, ki o yọ ibi ipamọ data idanwo kuro.

# mysql_secure_installation

8. Bayi buwolu wọle si ibi ipamọ data MariaDB, ṣẹda ibi ipamọ data fun Roundecube, ki o fun olumulo ni awọn igbanilaaye ti o yẹ lori ibi ipamọ data (ranti lati ṣeto ọrọ igbaniwọle to lagbara/aabo ni agbegbe iṣelọpọ kan).

# 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. Nigbamii, gbe agbekalẹ tabili tabili Roundcube si ibi ipamọ data tuntun ti a ṣẹda.

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

Igbesẹ 3: Ṣe igbasilẹ Package Roundcube

10. Ni igbesẹ yii, ṣe igbasilẹ ẹya iduroṣinṣin tuntun (1.4.9 ni akoko kikọ yi) ti Roundcube lati agbasọ laini aṣẹ wget lati gba, fa jade faili TAR, ki o gbe awọn faili sinu gbongbo iwe olupin ayelujara rẹ .

# 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. Nigbamii, ṣeto awọn igbanilaaye ti o yẹ lori awọn faili webroot Roundcube.

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

Igbesẹ 4: Tunto Àkọsílẹ Server Nginx Fun Oluṣakoso Wẹẹbu Roundcube

12. Bayi ṣẹda iwe olupin Nginx fun Roundcube labẹ /etc/nginx/conf.d/ (o le lorukọ faili ni ọna ti o fẹ ṣugbọn o yẹ ki o ni itẹsiwaju .conf).

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

Ṣafikun iṣeto ni atẹle ninu faili naa.

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

Fipamọ faili naa ki o pa.

13. Nigbamii, ṣii faili /etc/php-fpm.d/www.conf lati ṣe awọn ayipada diẹ si itọsọna wẹẹbu PHP-FPM.

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

Yi afun olumulo pada si nginx ninu awọn oniyipada atẹle.

user = nginx
group = nginx

Lẹhinna ṣe asọye jade tẹtisi ila = 127.0.0.1:9000 ki o ṣeto oniyipada olutẹtisi lati tẹtisi lori iho Unix ti a ṣeto sinu faili bulọọki olupin nginx:

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

Pẹlupẹlu, ṣeto awọn igbanilaaye fun iho UNIX, aibikita ati yi awọn ila pada si:

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

Lọgan ti o ba ti ṣetan, ṣafipamọ faili naa ki o pa a.

14. Lẹhinna tun bẹrẹ awọn iṣẹ Nginx ati PHP-FPM lati lo awọn ayipada to ṣẹṣẹ, bi atẹle.

# systemctl restart nginx php-fpm

Igbesẹ 5: Wiwọle Roundcube Wẹẹbu UI

15. Ṣaaju ki o to bẹrẹ oluṣeto fifi sori ẹrọ, lati yago fun eyikeyi awọn aṣiṣe igba, ṣeto awọn igbanilaaye ti o yẹ lori itọsọna/var/lib/php/session /. Oniwun ẹgbẹ aiyipada ni afun, yi pada si nginx bi o ti han.

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

16. Bayi ṣii ẹrọ aṣawakiri kan ki o lo adirẹsi http://mail.example.com/installer (rọpo ìkápá pẹlu orukọ olupin ti o ṣeto lakoko ti o n ṣẹda bulọọki olupin Nginx fun Roundcube) lati wọle si oju opo wẹẹbu insitola. Ti gbogbo awọn ẹya PHP, awọn amugbooro, ati awọn eto php.ini/.htaccess ṣe deede, iwọ yoo wo sikirinifoto atẹle, tẹ lori Next lati lọ si oju-iwe awọn atunto naa.

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

17. Oju-iwe awọn atunto fun ọ laaye lati ṣeto apẹẹrẹ Roundcube rẹ. A yoo ṣalaye awọn aṣayan pataki nikan fun aaye ti itọsọna yii.

Labẹ Iṣeto Gbogbogbo, ṣeto orukọ-ọja fun apẹẹrẹ Example.com Webmail.

Lọ si ipilẹ data, tẹ ile-iṣẹ ibi ipamọ data, orukọ, olumulo, ati ọrọ igbaniwọle lati sopọ si olupin MySQL.

Lẹhinna yi lọ si isalẹ lati awọn eto IMAP ati awọn eto SMTP ki o tẹ adirẹsi IP ti olupin rẹ IMAP ati olupin SMTP sii, ti o ba jẹ olupin kanna ti o n ṣiṣẹ Roundcube, fi silẹ bi\"localhost" ati tun ṣafihan awọn ipilẹ pataki miiran.

O le ṣọkasi awọn eto miiran ni ibamu si awọn aini rẹ, ni kete ti o ba ti ṣetan, tẹ lori Ṣẹda atunto.

18. O yẹ ki o wo ifiranṣẹ bayi ni sisọ ”Faili atunto naa ti ni ifipamọ ni aṣeyọri sinu/var/www/html/roundcubemail/config config ti fifi sori ẹrọ Roundcube rẹ.” Tẹ Tẹsiwaju.

19. O le ṣe atunyẹwo iṣeto rẹ lati oju-iwe atunto Idanwo bi o ṣe han ninu sikirinifoto atẹle.

20. Itele, yọ gbogbo folda ti o fi sori ẹrọ (eyiti o ni awọn faili ti o le fi han data iṣeto ni ifura bi awọn ọrọ igbaniwọle olupin ati awọn bọtini fifi ẹnọ kọ nkan si gbogbo eniyan) lati itọsọna root Roundcube (tabi rii daju pe aṣayan enable_installer ni config.inc.php jẹ alaabo) ).

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

21. Lakotan, lo URL naa http://mail.example.com lati wọle si oju-iwe iwọle Wiwọle Roundcube. Tẹ orukọ olumulo ati ọrọ igbaniwọle rẹ sii lati wo awọn leta rẹ.

Roundcube jẹ lilo ti o gbooro, ti o ni ifihan ni kikun oju-iwe wẹẹbu alabara ọpọlọpọ ede meeli. Ninu àpilẹkọ yii, a fihan bi a ṣe le fi sori ẹrọ ẹya iduroṣinṣin tuntun ti Roundcube Webmail lori CentOS/RHEL 8/7 pẹlu olupin ayelujara Nginx. Ti o ba ni ibeere eyikeyi, lo fọọmu esi ni isalẹ lati de ọdọ wa.