Поиск по сайту:

Установите RainLoop Webmail (веб-клиент электронной почты) с помощью Nginx и Apache в Arch Linux.


Rainloop — это бесплатное веб-приложение с открытым исходным кодом, написанное на PHP, которое обеспечивает быстрый современный веб-интерфейс для доступа к вашей электронной почте на всех основных почтовых провайдерах домена, таких как Yahoo, Gmail, Outlook и многих других, а также на ваших собственных локальных почтовых серверах, а также на действует как MUA (агент пользователя почты), получая доступ к почтовым серверам домена через протоколы IMAP и SMTP.

Демо-версия RainLoop

Взгляните на настройку демонстрационной страницы автора по адресу http://demo.rainloop.net/.

После того, как вы развернули Rainloop на своих серверах, единственное, что вам остается сделать, — это получить доступ к вашему домену Rainloop через веб-браузер и предоставить учетные данные для включенного почтового сервера вашего домена.

В этом руководстве рассматривается процесс установки веб-почты Rainloop в Arch Linux с точки зрения файлов конфигурации для Apache и Nginx. использование виртуального локального домена, настроенного через файл локальных хостов, без DNS-сервера.

Если вам также нужны рекомендации по установке Rainloop в системах Debian и Red Hat, посетите предыдущую статью RainLoop Webmail по адресу.

  1. Установите RainLoop Webmail в системах на базе Debian и Red Hat.

Требования

Для Нгинкс
  1. Установите LEMP (Nginx, PHP, MySQL с движком MariaDB и PhpMyAdmin) в Arch Linux.
  2. Создание виртуальных хостов на веб-сервере Nginx
Для Апача
  1. Установите LAMP (Linux, Apache, MySQL/MariaDB и PHP/PhpMyAdmin) в Arch Linux.

Шаг 1. Создайте виртуальные хосты для Nginx или Apache.

1. Предполагая, что вы настроили свои серверы (Nginx или Apache), как описано в верхних ссылках на презентации, первое, что вам нужно сделать, это чтобы создать элементарную запись DNS в локальном файле hosts, которая указывает на IP-адрес системы Arch Linux.

В системе Linux отредактируйте файл /etc/hosts и включите виртуальный домен Rainloop после записи localhost.

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 создайте необходимые конфигурации Виртуальных хостов и 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 создайте корневой путь к файлу веб-сервера 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-сертификата и ключей для виртуального хоста SSL и добавление вашего виртуального доменного имени (rainloop.lan). ) в сертификате Общее имя.

sudo apache_gen_ssl

После создания ключей сертификата и SSL добавьте путь Rainloop DocumentRoot, затем включите виртуальные хосты и перезапустите демон 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

5. Теперь пришло время загрузить и извлечь приложение Rainloop с официального сайта в корневой каталог документа, но сначала установите системные утилиты wget и разархивируйте.

sudo pacman -S unzip wget

6. Загрузите последний zip-архив исходного пакета Rainloop с помощью команды wget или с помощью браузера перейдите по адресу http://rainloop.net/downloads/.

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

7. После завершения процесса загрузки извлеките архив Rainloop в корневой путь к документу виртуального хоста ( /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. изменить пароль учетной записи электронной почты.