Εγκαταστήστε το RainLoop Webmail (Πελάτης ηλεκτρονικού ταχυδρομείου που βασίζεται στον ιστό) χρησιμοποιώντας "Nginx και Apache" στο Arch Linux


Το Rainloop είναι μια δωρεάν εφαρμογή Ιστού Ανοιχτού Κώδικα γραμμένη σε PHP που παρέχει μια γρήγορη σύγχρονη διεπαφή ιστού για πρόσβαση στα email σας σε όλους τους μεγάλους παρόχους αλληλογραφίας τομέα όπως το Yahoo, το Gmail, το Outlook και πολλοί άλλοι, καθώς και οι δικοί σας τοπικοί διακομιστές αλληλογραφίας, και επίσης, λειτουργεί ως MUA (Mail User Agent) με πρόσβαση σε διακομιστές αλληλογραφίας τομέα μέσω πρωτοκόλλων IMAP και SMTP.

Επίδειξη RainLoop

Ρίξτε μια γρήγορη ματιά στη ρύθμιση της σελίδας επίδειξης από τον συγγραφέα στη διεύθυνση http://demo.rainloop.net/.

Αφού αναπτύξετε το Rainloop στους διακομιστές σας, το μόνο που απομένει να κάνετε είναι να αποκτήσετε πρόσβαση στον τομέα Rainloop μέσω ενός προγράμματος περιήγησης ιστού και να παρέχετε διαπιστευτήρια για τον ενεργοποιημένο διακομιστή αλληλογραφίας τομέα σας.

Αυτό το σεμινάριο καλύπτει τη διαδικασία εγκατάστασης webmail του Rainloop στο Arch Linux και από την άποψη των αρχείων διαμόρφωσης για Apache και Nginx, χρησιμοποιώντας έναν εικονικό τοπικό τομέα που έχει ρυθμιστεί μέσω αρχείου τοπικών κεντρικών υπολογιστών, χωρίς διακομιστή DNS.

Εάν χρειάζεστε επίσης αναφορές για την εγκατάσταση του Rainloop σε συστήματα Debian και Red Hat, επισκεφθείτε το προηγούμενο άρθρο του RainLoop Webmail στη διεύθυνση.

  1. Εγκαταστήστε το RainLoop Webmail σε συστήματα που βασίζονται σε Debian και Red Hat

Απαιτήσεις

Για το Nginx
  1. Εγκαταστήστε το LEMP (Nginx, PHP, MySQL με μηχανή MariaDB και PhpMyAdmin) στο Arch Linux
  2. Δημιουργήστε εικονικούς κεντρικούς υπολογιστές στον διακομιστή Ιστού Nginx
Για Apache
  1. Εγκαταστήστε το LAMP (Linux, Apache, MySQL/MariaDB και PHP/PhpMyAdmin) στο Arch Linux

Βήμα 1: Δημιουργήστε εικονικούς κεντρικούς υπολογιστές για Nginx ή Apache

1. Υποθέτοντας ότι έχετε διαμορφώσει τους διακομιστές σας (Nginx ή Apache) όπως περιγράφεται στους συνδέσμους επάνω παρουσιάσεων, το πρώτο πράγμα που πρέπει να κάνετε είναι για να δημιουργήσετε μια στοιχειώδη καταχώρηση DNS σε τοπικό αρχείο κεντρικούς υπολογιστές που οδηγεί σε IP συστήματος Arch Linux.

Σε σύστημα Linux επεξεργαστείτε το αρχείο /etc/hosts και συμπεριλάβετε τον εικονικό σας τομέα Rainloop μετά την καταχώριση του τοπικού κεντρικού υπολογιστή.

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

Στο σύστημα Windows επεξεργαστείτε το C:\Windows\System32\drivers\etc\hosts και προσθέστε την ακόλουθη γραμμή στο κάτω μέρος.

192.168.1.33       rainloop.lan

2. Αφού επαληθεύσετε τον τοπικό τομέα χρησιμοποιώντας την εντολή ping, δημιουργήστε τις απαραίτητες διαμορφώσεις Virtual Host και SSL για Apache ή Nginx.

Εικονικοί οικοδεσπότες Nginx

Δημιουργήστε ένα αρχείο με το όνομα rainloop.lan στη διαδρομή /etc/nginx/sites-available/ με την ακόλουθη διαμόρφωση.

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

Προσθέστε το ακόλουθο περιεχόμενο αρχείου.

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

Στη συνέχεια, δημιουργήστε το περιεχόμενο αρχείου ισοδύναμου SSL.

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

Προσθέστε το ακόλουθο περιεχόμενο αρχείου.

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

Στο επόμενο βήμα δημιουργήστε αρχείο Πιστοποιητικό και Κλειδιά για Εικονικό κεντρικό υπολογιστή SSL και προσθέστε το εικονικό όνομα τομέα σας (rainloop.lan) στο Πιστοποιητικό Κοινό όνομα.

sudo nginx_gen_ssl.sh

Αφού δημιουργηθούν τα κλειδιά Πιστοποιητικού και SSL, δημιουργήστε τη διαδρομή αρχείου διακομιστή ιστού root του Rainloop (τόπος όπου βρίσκονται τα αρχεία PHP του Rainloop), στη συνέχεια ενεργοποιήστε τους εικονικούς κεντρικούς υπολογιστές και επανεκκινήστε τον δαίμονα Nginx για εφαρμογή διαμορφώσεων.

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

Εικονικοί οικοδεσπότες Apache

Δημιουργήστε ένα νέο αρχείο με το όνομα rainloop.conf στο /etc/httpd/conf/sites-available/ με το ακόλουθο περιεχόμενο.

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

Προσθέστε το ακόλουθο περιεχόμενο αρχείου.

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

Στη συνέχεια, δημιουργήστε το περιεχόμενο αρχείου ισοδύναμου SSL για τον Apache.

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

Προσθέστε το ακόλουθο περιεχόμενο αρχείου.

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

Το επόμενο βήμα είναι να δημιουργήσετε αρχείο SSL Certificate και Keys για SSL Virtual Host και να προσθέσετε το εικονικό όνομα τομέα σας (rainloop.lan ) στο Πιστοποιητικό Κοινό όνομα.

sudo apache_gen_ssl

Αφού δημιουργηθούν τα κλειδιά Certificate και SSL, προσθέστε τη διαδρομή Rainloop DocumentRoot και, στη συνέχεια, ενεργοποιήστε τους Virtual Hosts και επανεκκινήστε τον δαίμονα του Apache για να εφαρμόσετε διαμορφώσεις.

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

Βήμα 2: Προσθέστε τις απαραίτητες επεκτάσεις PHP

3. Είτε χρησιμοποιείτε διακομιστή ιστού Apache είτε Nginx, πρέπει να ενεργοποιήσετε τις ακόλουθες επεκτάσεις PHP στο php.ini αρχείο και, επίσης, συμπεριλάβετε τη νέα διαδρομή διακομιστή ιστού DocumentRoot προς την οδηγία open_basedir.

sudo nano /etc/php/php.ini

Εντοπίστε και αφαιρέστε το σχόλιο των παρακάτω επεκτάσεων PHP.

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

Επίσης, η δήλωση open_basedir θα πρέπει να μοιάζει με αυτό.

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

4. Μετά την τροποποίηση του αρχείου php.ini επανεκκινήστε τον διακομιστή σας και επιλέξτε το αρχείο phpinfo για να δείτε εάν τα πρωτόκολλα SSL είναι ενεργοποιημένα.

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

Βήμα 3: Λήψη και εγκατάσταση του RainLoop Webmail

5. Τώρα είναι ώρα να κατεβάσετε και να εξαγάγετε την εφαρμογή Rainloop από τον επίσημο ιστότοπο στον κατάλογο Document Root, αλλά πρώτα εγκαταστήστε τα βοηθητικά προγράμματα συστήματος wget και unzip.

sudo pacman -S unzip wget

6. Πραγματοποιήστε λήψη του τελευταίου πακέτου πηγής αρχείου zip Rainloop χρησιμοποιώντας την εντολή wget ή χρησιμοποιώντας ένα πρόγραμμα περιήγησης για πλοήγηση στη διεύθυνση http://rainloop.net/downloads/.

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

7. Αφού ολοκληρωθεί η διαδικασία λήψης, εξαγάγετε το αρχείο Rainloop στη διαδρομή Virtual Host Document Root ( /srv/www/rainloop/ ).

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

8. Στη συνέχεια, ορίστε τα ακόλουθα δικαιώματα στην προεπιλεγμένη διαδρομή της εφαρμογής.

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

Βήμα 4: Διαμόρφωση του Rainloop μέσω Διασύνδεσης Ιστού

9. Η εφαρμογή Rainloop μπορεί να διαμορφωθεί με δύο τρόπους: χρησιμοποιώντας ένα κέλυφος συστήματος μέσω προγράμματος περιήγησης. Εάν θέλετε να ρυθμίσετε τις παραμέτρους μέσω τερματικού, ανοίξτε και επεξεργαστείτε το αρχείο application.ini που βρίσκεται στο /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.

10. Για να αποκτήσετε πρόσβαση στη διεπαφή διαχειριστή από το πρόγραμμα περιήγησης, χρησιμοποιήστε την ακόλουθη διεύθυνση URL https://rainloop.lan/?admin και μετά παρέχετε τα προεπιλεγμένα διαπιστευτήρια εφαρμογής.

User= admin
Password= 12345

11. Μετά την αρχική είσοδο θα ειδοποιηθείτε να αλλάξετε τον προεπιλεγμένο κωδικό πρόσβασης, επομένως σας συμβουλεύω να το κάνετε.

12. Εάν θέλετε να ενεργοποιήσετε τη σύνδεση επαφών στη βάση δεδομένων MySQL και να δημιουργήσετε μια νέα βάση δεδομένων με έναν προνομιούχο χρήστη σε αυτήν, τότε δώστε διαπιστευτήρια βάσης δεδομένων στις Επαφές πεδία.

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

13. Από προεπιλογή το Rainloop παρέχει αρχεία διαμόρφωσης διακομιστή αλληλογραφίας τομέων Gmail, Yahoo και Outlook, αλλά μπορείτε να προσθέσετε άλλα τομείς διακομιστή αλληλογραφίας αν θέλετε.

14. Για να συνδεθείτε στον διακομιστή αλληλογραφίας σας, τοποθετήστε το πρόγραμμα περιήγησής σας στη διεύθυνση https://rainloop.lan και παρέχετε τα διαπιστευτήρια διακομιστή τομέα σας.

Για περαιτέρω διαμορφώσεις, επισκεφθείτε την επίσημη σελίδα τεκμηρίωσης του Rainloop στη διεύθυνση http://rainloop.net/docs/.

Με το Rainloop μπορείτε να έχετε πρόσβαση σε διακομιστές αλληλογραφίας από οποιαδήποτε συσκευή διαθέτει πρόγραμμα περιήγησης, εφόσον ο διακομιστής σας διαθέτει σύνδεση στο Διαδίκτυο, το μόνο μείον της χρήσης της εφαρμογής Rainloop στο Arch Linux μέχρι στιγμής είναι η έλλειψη του πακέτου προσθήκης poppassd που απαιτείται για να αλλάξετε τον κωδικό πρόσβασης λογαριασμού email.