Zainstaluj RainLoop Webmail (internetowy klient poczty e-mail) przy użyciu „Nginx i Apache” w Arch Linux
Rainloop to bezpłatna aplikacja internetowa typu open source napisana w języku PHP, która zapewnia szybki, nowoczesny interfejs sieciowy umożliwiający dostęp do wiadomości e-mail u wszystkich głównych dostawców poczty domenowej, takich jak Yahoo, Gmail, Outlook i wielu innych, a także na własnych lokalnych serwerach pocztowych, a także działa jako MUA (Mail User Agent), uzyskując dostęp do serwerów pocztowych domeny za pośrednictwem protokołów IMAP i SMTP.
Wersja demonstracyjna RainLoopa
Rzuć okiem na konfigurację strony demonstracyjnej autorstwa autora pod adresem http://demo.rainloop.net/.
Po wdrożeniu Rainloop na swoich serwerach jedyne, co pozostaje do zrobienia, to uzyskać dostęp do domeny Rainloop za pośrednictwem przeglądarki internetowej i podać dane uwierzytelniające dla włączonego serwera poczty domeny.
W tym samouczku omówiono proces instalacji poczty internetowej Rainloop w systemie Arch Linux z obu punktów widzenia plików konfiguracyjnych dla Apache i Nginx, przy użyciu wirtualnej domeny lokalnej skonfigurowanej za pomocą lokalnego pliku hosts, bez serwera DNS.
Jeśli potrzebujesz również informacji na temat instalacji Rainloop w systemach Debian i Red Hat, zapoznaj się z poprzednim artykułem RainLoop Webmail pod adresem.
- Zainstaluj usługę RainLoop Webmail w systemach opartych na Debianie i Red Hat
Wymagania
Dla Nginxa
- Zainstaluj LEMP (Nginx, PHP, MySQL z silnikiem MariaDB i PhpMyAdmin) w Arch Linux
- Twórz wirtualne hosty na serwerze internetowym Nginx
Dla Apache'a
- Zainstaluj LAMP (Linux, Apache, MySQL/MariaDB i PHP/PhpMyAdmin) w Arch Linux
Krok 1: Utwórz wirtualne hosty dla Nginx lub Apache
1. Zakładając, że skonfigurowałeś swoje serwery (Nginx lub Apache) zgodnie z opisem w górnych linkach do prezentacji, pierwszą rzeczą, którą musisz zrobić, to aby utworzyć podstawowy wpis DNS w lokalnym pliku hosts, który wskazuje adres IP systemu Arch Linux.
W systemie Linux edytuj plik /etc/hosts i dołącz domenę wirtualną Rainloop po wpisie localhost.
127.0.0.1 localhost.localdomain localhost rainloop.lan
192.168.1.33 rainloop.lan
W systemie Windows edytuj C:\Windows\System32\drivers\etc\hosts i dodaj następujący wiersz na dole.
192.168.1.33 rainloop.lan
2. Po zweryfikowaniu domeny lokalnej za pomocą polecenia ping utwórz niezbędne konfiguracje Hosty wirtualne i SSL dla Apache lub Nginx.
Hosty wirtualne Nginx
Utwórz plik o nazwie rainloop.lan w ścieżce /etc/nginx/sites-available/ z następującą konfiguracją.
sudo nano /etc/nginx/sites-available/rainloop.conf
Dodaj następującą zawartość pliku.
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;
}
}
Następnie utwórz zawartość pliku równoważną SSL.
sudo nano /etc/nginx/sites-available/rainloop-ssl.conf
Dodaj następującą zawartość pliku.
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;
}
}
W następnym kroku wygeneruj plik Certyfikatu i Klucze dla Wirtualnego hosta SSL i dodaj nazwę swojej domeny wirtualnej (rainloop.lan) na certyfikacie Nazwa zwyczajowa.
sudo nginx_gen_ssl.sh
Po wygenerowaniu certyfikatu i kluczy SSL utwórz główną ścieżkę pliku serwera WWW Rainloop (miejsce, w którym znajdują się pliki PHP Rainloop), następnie włącz wirtualne hosty i zrestartuj demona Nginx, aby zastosować konfiguracje.
sudo mkdir -p /srv/www/rainloop
sudo n2ensite rainloop
sudo n2ensite rainloop-ssl
sudo systemctl restart nginx
Hosty wirtualne Apache
Utwórz nowy plik o nazwie rainloop.conf w /etc/httpd/conf/sites-available/ z następującą treścią.
sudo nano /etc/httpd/conf/sites-available/rainloop.conf
Dodaj następującą zawartość pliku.
<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>
Następnie utwórz zawartość pliku równoważną SSL dla Apache.
sudo nano /etc/httpd/conf/sites-available/rainloop-ssl.conf
Dodaj następującą zawartość pliku.
<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>
Następnym krokiem jest utworzenie pliku Certyfikatu SSL i Kluczy dla Wirtualnego hosta SSL i dodanie nazwy domeny wirtualnej (rainloop.lan ) w certyfikacie Nazwa zwyczajowa.
sudo apache_gen_ssl
Po utworzeniu certyfikatu i kluczy SSL dodaj ścieżkę DocumentRoot Rainloop, następnie włącz Virtual Hosts i zrestartuj demona Apache, aby zastosować konfiguracje.
sudo mkdir -p /srv/www/rainloop
sudo a2ensite rainloop
sudo a2ensite rainloop-ssl
sudo systemctl restart httpd
Krok 2: Dodaj niezbędne rozszerzenia PHP
3. Niezależnie od tego, czy używasz serwera WWW Apache czy Nginx, musisz włączyć następujące rozszerzenia PHP w php.ini plik i dołącz także nową ścieżkę serwera WWW DocumentRoot do dyrektywy open_basedir.
sudo nano /etc/php/php.ini
Znajdź i odkomentuj następujące rozszerzenia 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
Również instrukcja open_basedir powinna wyglądać tak.
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/
4. Po modyfikacji pliku php.ini zrestartuj serwer, a następnie sprawdź plik phpinfo, aby sprawdzić, czy protokoły SSL są włączone.
----------On Apache Web Server----------
sudo systemctl restart httpd
----------On Nginx Web Server----------
sudo systemctl restart nginx
sudo systemctl restart php-fpm
Krok 3: Pobierz i zainstaluj pocztę internetową RainLoop
5. Teraz nadszedł czas, aby pobrać i rozpakować aplikację Rainloop z oficjalnej strony internetowej do katalogu Document Root, ale najpierw zainstaluj narzędzia systemowe wget i unzip.
sudo pacman -S unzip wget
6. Pobierz najnowszy pakiet źródłowy archiwum zip Rainloop za pomocą polecenia wget lub za pomocą przeglądarki, aby przejść do http://rainloop.net/downloads/.
wget http://repository.rainloop.net/v1/rainloop-latest.zip
7. Po zakończeniu pobierania wypakuj archiwum Rainloop do ścieżki głównej dokumentów hosta wirtualnego ( /srv/www/rainloop/ ).
sudo unzip rainloop-latest.zip -d /srv/www/rainloop/
8. Następnie ustaw następujące uprawnienia na domyślnej ścieżce aplikacji.
sudo chmod -R 755 /srv/www/rainloop/
sudo chown -R http:http /srv/www/rainloop/
Krok 4: Skonfiguruj Rainloop za pośrednictwem interfejsu internetowego
9. Aplikację Rainloop można skonfigurować na dwa sposoby: za pomocą powłoki systemowej lub przez przeglądarkę. Jeśli chcesz skonfigurować przez terminal, otwórz i edytuj plik application.ini znajdujący się w /srv/www/rainloop/data/_data_da047852f16d2bc7352b24240a2f1599/_default_/configs/.
10. Aby uzyskać dostęp do interfejsu administracyjnego z przeglądarki, użyj następującego adresu URL https://rainloop.lan/?admin, a następnie podaj domyślne dane uwierzytelniające aplikacji.
User= admin
Password= 12345
11. Po pierwszym logowaniu zostaniesz poproszony o zmianę domyślnego hasła, więc radzę to zrobić.
12. Jeśli chcesz umożliwić logowanie kontaktom do bazy danych MySQL i utworzyć nową bazę danych z użytkownikiem uprzywilejowanym, podaj dane uwierzytelniające bazy danych w Kontaktach pola.
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. Domyślnie Rainloop udostępnia pliki konfiguracyjne serwerów poczty w domenach Gmail, Yahoo i Outlook, ale możesz dodać inne domeny serwerów pocztowych, jeśli chcesz.
14. Aby zalogować się na serwerze pocztowym, wskaż przeglądarkę na https://rainloop.lan i podaj dane uwierzytelniające serwera domeny.
Dalsze konfiguracje można znaleźć na oficjalnej stronie dokumentacji Rainloop pod adresem http://rainloop.net/docs/.
Dzięki Rainloop możesz uzyskać dostęp do serwerów pocztowych z dowolnego urządzenia wyposażonego w przeglądarkę, o ile Twój serwer ma połączenie z Internetem, jedynym minusem korzystania z aplikacji Rainloop w Arch Linux jest brak potrzebnego pakietu wtyczek poppassd aby zmienić hasło do konta e-mail.