Arch Linux-da Nginx we Apache ulanyp, RainLoop Webmail (Web esasly e-poçta müşderisi) guruň


“Rainloop”, “Yahoo”, “Gmail”, “Outlook” we beýleki köp sanly domen poçta üpjün edijilerinde, şeýle hem öz ýerli poçta serwerleriňizde e-poçtaňyza girmek üçin çalt döwrebap web interfeýsini üpjün edýän PHP-de ýazylan mugt açyk çeşme web programmasydyr. IMAP we SMTP protokollary arkaly domen poçta serwerlerine girip MUA (Poçta Ulanyjy Agenti) hökmünde çykyş edýär.

Http://demo.rainloop.net/ salgysynda awtor tarapyndan görkezilen demo sahypasynyň gurluşyna tiz göz aýlaň.

“Rainloop” -y serwerleriňize ýerleşdireniňizden soň, diňe “Rainloop” domeniňize web brauzeri arkaly girmek we açyk domen poçta serweriňiz üçin şahsyýet maglumatlary bermekdir.

Bu gollanma, Apache we Nginx üçin iki nukdaýnazardan konfigurasiýa faýllaryndan Arch Linux -da Rainloop webmail gurmak işini öz içine alýar. DNS serweri bolmazdan, ýerli host faýly arkaly düzülen wirtual ýerli domeni ulanmak.

Debian we Red Hat ulgamlarynda “Rainloop” -y gurmak barada salgylanmalar gerek bolsa, öňki “RainLoop Webmail” makalasyna giriň.

  1. RainLoop Webmail-i Debian we Red Hat esasly ulgamlara guruň

  1. Arch Linux-da LEMP (Nginx, PHP, MySQL, MariaDB dwigateli we PhpMyAdmin) guruň
  2. Nginx web serwerinde wirtual hostlary dörediň

  1. Arch Linux-da LAMP (Linux, Apache, MySQL/MariaDB we PHP/PhpMyAdmin) guruň

1-nji ädim: Nginx ýa-da Apache üçin wirtual hostlary dörediň

1. upperokarky prezentasiýa baglanyşyklarynda beýan edilişi ýaly serwerleriňizi ( Nginx ýa-da Apache ) sazladyňyz öýdýän, ilki etmeli zadyňyz başlangyç döretmekdir. Arch Linux ulgam IP-ni görkezýän ýerli öý eýeleri faýlyndaky DNS ýazgy.

Linux ulgamynda /etc/host faýly redaktirläň we ýerlihost girenden soň Rainloop wirtual domeniňizi goşuň.

127.0.0.1	localhost.localdomain  localhost     rainloop.lan
192.168.1.33	rainloop.lan

Windows ulgamynda C:\Windows\System32\sürüjiler\etc\hostlar redaktirläň we aşagyna aşakdaky setiri goşuň.

192.168.1.33       rainloop.lan

2. ping buýrugyny ulanyp, ýerli domeni barlanyňyzdan soň, Apache ýa-da Wirtual Hostlar we SSL konfigurasiýalaryny dörediň ýa-da Nginx .

Aşakdaky konfigurasiýa bilen /etc/nginx/sites-available/ ýolunda rainloop.lan atly bir faýl dörediň.

$ sudo nano /etc/nginx/sites-available/rainloop.conf

Aşakdaky faýl mazmunyny goşuň.

server {
    listen 80;
    server_name rainloop.lan;

    rewrite        ^ https://$server_name$request_uri? permanent;
    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;
    root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
     root    /srv/www/rainloop/;
     expires 30d;
    }

    location / {
        index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
 }

 location ^~ /data {
  deny all;
}

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

Soňra SSL ekwiwalent faýl mazmunyny dörediň.

$ sudo nano /etc/nginx/sites-available/rainloop-ssl.conf

Aşakdaky faýl mazmunyny goşuň.

server {
    listen 443 ssl;
    server_name rainloop.lan;

       ssl_certificate     /etc/nginx/ssl/rainloop.lan.crt;
       ssl_certificate_key  /etc/nginx/ssl/rainloop.lan.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/rainloop.lan.access.log;
    error_log /var/log/nginx/rainloop.lan.error.log;

   root /srv/www/rainloop/;

    # serve static files
    location ~ ^/(images|javascript|js|css|flash|media|static)/  {
      root    /srv/www/rainloop/;
      expires 30d;
    }

location ^~ /data {
  deny all;
}

    location / {
        index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
 }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
 }

Indiki ädimde SSL Wirtual Host üçin Şahadatnama faýly we Düwmeler dörediň we wirtual domen adyňyzy goşuň ( rainloop.lan ) şahadatnamada umumy at .

$ sudo nginx_gen_ssl.sh

Şahadatnama we SSL düwmeleri döredilenden soň, Rainloop kök web serwer faýl ýoluny dörediň (Rainloop PHP faýllarynyň ýerleşýän ýeri), soňra Wirtual Hostlary işlediň we konfigurasiýalary ulanmak üçin Nginx daemonyny täzeden açyň.

$ sudo mkdir -p /srv/www/rainloop
$ sudo n2ensite rainloop
$ sudo n2ensite rainloop-ssl
$ sudo systemctl restart nginx

Aşakdaky mazmunly /etc/httpd/conf/sites-available/ -de rainloop.conf atly täze faýl dörediň.

$ sudo nano /etc/httpd/conf/sites-available/rainloop.conf

Aşakdaky faýl mazmunyny goşuň.

<VirtualHost *:80>
                ServerName rainloop.lan
                DocumentRoot "/srv/www/rainloop/"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/rainloop-error_log"
                TransferLog "/var/log/httpd/rainloop-access_log"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

Soňra Apache üçin SSL ekwiwalent faýl mazmunyny dörediň.

$ sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf

Aşakdaky faýl mazmunyny goşuň.

<VirtualHost *:443>
                ServerName rainloop.lan
                DocumentRoot "/srv/www/rainloop/"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/rainloop-ssl-error_log"
                TransferLog "/var/log/httpd/rainloop-ssl-access_log"

SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/rainloop.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/rainloop.lan.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>

</VirtualHost>

Indiki ädim, SSL Wirtual Host üçin SSL Şahadatnamasy faýly we Düwmeler döretmek we wirtual domen adyňyzy goýmak ( rainloop.lan) ) şahadatnamada umumy at .

$ sudo apache_gen_ssl

Şahadatnama we SSL düwmeleri döredilenden soň, Rainloop DocumentRoot ýoluny goşuň, soňra Wirtual Hostlary işlediň we konfigurasiýalary ulanmak üçin Apache daemonyny täzeden açyň.

$ sudo mkdir -p /srv/www/rainloop
$ sudo a2ensite rainloop
$ sudo a2ensite rainloop-ssl
$ sudo systemctl restart httpd

2-nji ädim: PHP giňeltmelerini goşuň

3. Apache ýa-da Nginx web serwerini ulanýarsyňyzmy, php.ini faýlynda aşakdaky PHP giňeltmelerini işletmeli we şol sanda täze web serwer DocumentRoot open_basedir direktiwasyna barýan ýol.

$ sudo nano /etc/php/php.ini

Aşakdaky PHP giňeltmelerini tapyň we paýlaşmaň.

extension=iconv.so
extension=imap.so
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so ( enables IMAPS and SMTP SSL protocols on mail servers)
extension=pdo_mysql.so

Şeýle hem open_basedir jümlesi şeýle bolmaly.

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

4. php.ini faýly üýtgedilenden soň, SSL protokollarynyň açykdygyny ýa-da ýokdugyny anyklamak üçin serweriňizi täzeden açyň.

----------On Apache Web Server----------
$ sudo systemctl restart httpd
----------On Nginx Web Server----------
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm

3-nji ädim: “RainLoop” web sahypasyny göçürip alyň

5. Indi “Rainloop” programmasyny resmi web sahypasyndan “Document Root” katalogyna göçürip almagyň wagty geldi, ýöne ilki bilen wget we unzip ulgam hyzmatlaryny guruň.

$ sudo pacman -S unzip wget

6. Iň soňky çeşme bukjasyny wget buýrugy ýa-da http://rainloop.net/downloads/ sahypasyna geçmek üçin brauzer ulanyp göçürip alyň.

$ wget http://repository.rainloop.net/v1/rainloop-latest.zip

7. Göçürip almak prosesi gutarandan soň, “Rainloop” arhiwini Wirtual Host Document kök ýoluna çykaryň (/srv/www/rainloop/).

$ sudo unzip rainloop-latest.zip -d  /srv/www/rainloop/

8. Soňra programmanyň deslapky ýolunda aşakdaky rugsatlary belläň.

$ sudo chmod -R 755 /srv/www/rainloop/
$ sudo chown -R http:http /srv/www/rainloop/

4-nji ädim: Web interfeýsi arkaly “Rainloop” -y sazlaň

9. “Rainloop” programmasyny iki görnüşde düzüp bolýar: brauzer arkaly ulgam gabygyny ulanmak. Terminalyň üstünde sazlamak isleseňiz, /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/ ýerleşýän application.ini faýlyny redaktirlemek isleseňiz.

10. Brauzerden Admin interfeýsine girmek üçin aşakdaky URL salgysyny ulanyň https: //rainloop.lan/? Admin , soňra deslapky programma maglumatlaryny beriň.

User= admin
Password= 12345

11. Ilkinji girişden soň, adaty paroly üýtgetmek barada duýduryş berler, şonuň üçin muny etmegi maslahat berýärin.

12. MySQL maglumatlar bazasyna kontaktlar girmegi işjeňleşdirmek we ýeňillikli ulanyjy bilen täze maglumat bazasyny döretmek isleseňiz, Aragatnaşyklar meýdanlarynda maglumat bazasynyň şahsyýetnamalaryny beriň.

mysql -u root -p
create database if not exists rainloop;
create user [email  identified by “password”;
grant all privileges on rainloop.* to [email ;
flush privileges;
exit;

13. Adaty tertipde “Rainloop” poçta serweri konfigurasiýa faýllaryny Gmail , Yahoo we Outlook domenleri bilen üpjün edýär, ýöne isleseňiz beýleki poçta serwerleriniň domenlerini goşup bilersiňiz.

14. Poçta serweriňize girmek üçin brauzeriňizi https: //rainloop.lan görkeziň we domen serweriňiziň şahsyýet maglumatlaryny beriň.

Goşmaça konfigurasiýalar üçin http://rainloop.net/docs/ salgysynda resmi Rainloop resminamalar sahypasyna girip görmegiňizi haýyş edýäris.

“Rainloop” bilen, serweriňizde internet birikdirilençä brauzeri bolan islendik enjamdan poçta serwerlerine girip bilersiňiz, “Rainloop” programmasyny Arch Linux-da şu wagta çenli ulanmagyň ýeke-täk minusy, zerur poppassd plugin paketiniň ýoklugydyr. e-poçta hasabynyň parolyny üýtgetmek