ติดตั้ง RainLoop Webmail (ไคลเอนต์อีเมลบนเว็บ) โดยใช้ 'Nginx และ Apache' ใน Arch Linux
Rainloop เป็นเว็บแอปพลิเคชันโอเพ่นซอร์สฟรีที่เขียนด้วย PHP ซึ่งมีอินเทอร์เฟซเว็บที่ทันสมัยและรวดเร็วในการเข้าถึงอีเมลของคุณจากผู้ให้บริการเมลโดเมนหลักทุกราย เช่น Yahoo, Gmail, Outlook และอื่นๆ อีกมากมาย เช่นเดียวกับเซิร์ฟเวอร์เมลในเครื่องของคุณเอง และยัง ทำหน้าที่เป็น MUA (Mail User Agent) โดยการเข้าถึงเซิร์ฟเวอร์เมลของโดเมนผ่านโปรโตคอล IMAP และ SMTP
การสาธิต RainLoop
ดูการตั้งค่าหน้าสาธิตโดยผู้เขียนได้ที่ http://demo.rainloop.net/
เมื่อคุณปรับใช้ Rainloop บนเซิร์ฟเวอร์ของคุณแล้ว สิ่งเดียวที่ต้องทำคือเข้าถึงโดเมน Rainloop ของคุณผ่านเว็บเบราว์เซอร์ และให้ข้อมูลประจำตัวสำหรับเซิร์ฟเวอร์เมลโดเมนที่เปิดใช้งานของคุณ
บทช่วยสอนนี้ครอบคลุมกระบวนการติดตั้งเว็บเมล Rainloop บน Arch Linux จากไฟล์การกำหนดค่ามุมมองทั้งสองสำหรับ Apache และ Nginx ใช้โดเมนท้องถิ่นเสมือนที่กำหนดค่าผ่านไฟล์โฮสต์ภายในเครื่อง โดยไม่มีเซิร์ฟเวอร์ DNS
หากคุณต้องการข้อมูลอ้างอิงเกี่ยวกับการติดตั้ง Rainloop บนระบบ Debian และ Red Hat โปรดไปที่บทความเว็บเมล RainLoop ก่อนหน้าที่
- ติดตั้ง RainLoop Webmail บนระบบที่ใช้ Debian และ Red Hat
ความต้องการ
สำหรับ Nginx
- ติดตั้ง LEMP (Nginx, PHP, MySQL พร้อมกลไก MariaDB และ PhpMyAdmin) ใน Arch Linux
- สร้างโฮสต์เสมือนในเว็บเซิร์ฟเวอร์ Nginx
สำหรับอาปาเช่
- ติดตั้ง 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 แล้ว ให้สร้างการกำหนดค่า Virtual Hosts และ 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;
}
}
ในขั้นตอนถัดไป ให้สร้างไฟล์ Certificate และ Keys สำหรับ SSL Virtual Host และเพิ่มชื่อโดเมนเสมือนของคุณ (rainloop.lan >) บนใบรับรอง ชื่อสามัญ
sudo nginx_gen_ssl.sh
หลังจากสร้างใบรับรองและคีย์ SSL แล้ว ให้สร้างเส้นทางไฟล์เว็บเซิร์ฟเวอร์ Rainloop root (วางที่มีไฟล์ Rainloop PHP อยู่) จากนั้นเปิดใช้งาน Virtual Hosts และรีสตาร์ท Nginx daemon เพื่อใช้การกำหนดค่า
sudo mkdir -p /srv/www/rainloop
sudo n2ensite rainloop
sudo n2ensite rainloop-ssl
sudo systemctl restart nginx
อาปาเช่โฮสต์เสมือน
สร้างไฟล์ใหม่ชื่อ 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
หลังจากสร้างใบรับรองและคีย์ SSL แล้ว ให้เพิ่มเส้นทาง DocumentRoot ของ Rainloop จากนั้นเปิดใช้งาน Virtual Hosts และรีสตาร์ท Apache daemon เพื่อใช้การกำหนดค่า
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. ดาวน์โหลดแพ็คเกจแหล่งล่าสุด Rainloop zip archive โดยใช้คำสั่ง 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 ที่จำเป็น เพื่อเปลี่ยนรหัสผ่านบัญชีอีเมล