วิธีการติดตั้ง Roundcube Webmail บน CentOS/RHEL 8/7
Roundcube เป็นซอฟต์แวร์เว็บเมล IMAP หลายภาษาแบบโอเพ่นซอร์สที่มีคุณลักษณะครบถ้วนบนเว็บ พร้อมด้วยส่วนติดต่อผู้ใช้แบบแอปพลิเคชันที่ทำงานและปรับแต่งได้อย่างสมบูรณ์ และใช้มาตรฐานเว็บล่าสุด สร้างขึ้นโดยใช้ PHP และมีฟังก์ชันการทำงานเต็มรูปแบบที่คุณคาดหวังได้จากโปรแกรมรับส่งเมลสมัยใหม่
คุณสมบัติ Roundcube:
- มีหลายภาษา รองรับมากกว่า 70 ภาษา
- รองรับสมุดที่อยู่แบบค้นหาตามที่คุณพิมพ์
- รองรับการระบุตัวตนของผู้ส่งหลายราย
- เสนอการปกป้องความเป็นส่วนตัวที่ซับซ้อน
- มีสมุดที่อยู่ที่มีคุณสมบัติครบถ้วนพร้อมกลุ่มและตัวเชื่อมต่อ LDAP
- เสนอการเขียนข้อความ richtext/HTML
- รองรับการค้นหาข้อความและที่อยู่ติดต่อ
- รองรับอินเทอร์เนต ชื่อโดเมน (IDNA)
- รองรับการจัดการโฟลเดอร์ โฟลเดอร์ที่ใช้ร่วมกัน และ ACL
- ขยายได้โดยใช้ Plug-in API
- มีฟังก์ชันการตรวจสอบการสะกดคำ
- มีฟังก์ชันนำเข้า/ส่งออก
- มี Plug-in API สำหรับส่วนขยายที่ยืดหยุ่น และอื่นๆ อีกมากมาย
ข้อกำหนดของระบบที่แนะนำ:
- เซิร์ฟเวอร์ CentOS 8/RHEL 8 หรือ CentOS 7/RHEL 7 ที่มีการติดตั้งน้อยที่สุด
- เว็บเซิร์ฟเวอร์ Apache หรือ Nginx
- ฐานข้อมูล PHP และ MySQL/MariaDB
- เซิร์ฟเวอร์ SMTP และ IMAP พร้อมรองรับ IMAP4 rev1
สำหรับขอบเขตของบทความนี้ เราถือว่าคุณมีเซิร์ฟเวอร์อีเมล Postfix ที่ใช้งานอยู่ซึ่งมีผู้ใช้เสมือนอยู่แล้ว ไม่เช่นนั้น ให้ปฏิบัติตามการตั้งค่าคำแนะนำของเรา:
- การตั้งค่าเซิร์ฟเวอร์จดหมาย Postfix และ Dovecot ด้วย MariaDB – ตอนที่ 1
- กำหนดค่าผู้ใช้โดเมนเสมือน Postfix และ Dovecot – ส่วนที่ 2
- ติดตั้งและรวม ClamAV และ SpamAssassin เข้ากับเซิร์ฟเวอร์อีเมล Postfix – ตอนที่ 3
สภาพแวดล้อมการทดสอบ:
สำหรับวัตถุประสงค์ของบทความนี้ ฉันจะติดตั้ง Roundcube Webmail บน Linode CentOS VPS พร้อมด้วยเว็บเซิร์ฟเวอร์ Nginx, ที่อยู่ IP แบบคงที่ 192.168.0.100 และชื่อโฮสต์ mail.linux-console.net
ขั้นตอนที่ 1: ติดตั้ง Nginx, PHP-FPM และ MariaDB ใน CentOS 8/7
1. เริ่มต้นด้วยการเปิดใช้งานที่เก็บ EPEL และ REMI และติดตั้ง Nginx, PHP , PHP-FPM และเซิร์ฟเวอร์ MariaDB บนระบบ CentOS ของคุณ
yum install epel-release
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm [CentOS/RHEL 8]
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm [CentOS/RHEL 7]
yum install yum-utils
yum-config-manager --enable remi-php72
yum install nginx php php-fpm php-mcrypt php-cli php-gd php-curl php-xml php-mysql php-mbstring php-pspell php-imagick mariadb-server
2. เมื่อคุณติดตั้งแพ็คเกจทั้งหมดสำเร็จแล้ว ให้เริ่มเว็บเซิร์ฟเวอร์ Nginx เปิดใช้งานให้เริ่มอัตโนมัติในเวลาบูต และตรวจสอบว่ามันทำงานอยู่หรือไม่
systemctl start nginx
systemctl enable nginx
systemctl status nginx
3. ถัดไป หากคุณเปิดใช้งานไฟร์วอลล์ระบบ คุณจะต้องเปิดพอร์ต 80 สำหรับคำขอภายนอก
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
4. ถัดไป คุณต้องกำหนดค่า PHP-FPM เพื่อให้ทำงานได้อย่างถูกต้อง เปิดไฟล์ /etc/php.ini โดยใช้โปรแกรมแก้ไขทดสอบบรรทัดคำสั่ง
vim /etc/php.ini
มองหาคำสั่ง ;cgi.fix_pathinfo=1
ยกเลิกการใส่เครื่องหมายข้อคิดเห็น และตั้งค่าเป็น 0
cgi.fix_pathinfo=0
นอกจากนี้ ให้ยกเลิกหมายเหตุคำสั่ง ;date.timezone
และตั้งค่าเป็น เขตเวลา ของคุณ
date.timezone = "Africa/Kampala"
เมื่อเสร็จแล้วให้บันทึกไฟล์และออก
5. จากนั้นเริ่มบริการ PHP-FPM เปิดใช้งานให้เริ่มอัตโนมัติในเวลาบูต และตรวจสอบว่าบริการเปิดใช้งานอยู่หรือไม่ ดังนี้
systemctl start php-fpm
systemctl enable php-fpm
systemctl status php-fpm
ขั้นตอนที่ 2: รักษาความปลอดภัยเซิร์ฟเวอร์ MariaDB และสร้างฐานข้อมูล Roundecube
6. ตอนนี้เริ่มบริการ MariaDB โดยใช้คำสั่งต่อไปนี้
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
7. การติดตั้ง MariaDB เริ่มต้นไม่ปลอดภัย คุณต้องเรียกใช้สคริปต์ความปลอดภัยที่มาพร้อมกับแพ็คเกจไบนารีเพื่อรักษาความปลอดภัย คุณจะถูกขอให้ตั้งรหัสผ่านรูท ลบผู้ใช้ที่ไม่ระบุชื่อ ปิดการใช้งานการเข้าสู่ระบบรูทจากระยะไกล และลบฐานข้อมูลทดสอบ
mysql_secure_installation
8. ตอนนี้เข้าสู่ระบบฐานข้อมูล MariaDB สร้างฐานข้อมูลสำหรับ Roundecube และให้สิทธิ์แก่ผู้ใช้ในการอนุญาตที่เหมาะสมบนฐานข้อมูล (อย่าลืมตั้งรหัสผ่านที่รัดกุม/ปลอดภัยใน สภาพแวดล้อมการผลิต)
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE roundcubemail /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
MariaDB [(none)]> CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '=213@!#webL';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON roundcubemail.* TO 'roundcube'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
9. จากนั้น นำเข้าเค้าโครงตาราง Roundcube ไปยังฐานข้อมูลที่สร้างขึ้นใหม่
cd /var/www/html/roundcubemail/
mysql -u root -p roundcubemail < SQL/mysql.initial.sql
ขั้นตอนที่ 3: ดาวน์โหลดแพ็คเกจ Roundcube
10. ในขั้นตอนนี้ ให้ดาวน์โหลด Roundcube เวอร์ชันเสถียรล่าสุด (1.4.9 ณ เวลาที่เขียนบทความนี้) จากหน้าดาวน์โหลด หรือใช้ wget command-line downloader เพื่อ รับมัน แยกไฟล์ TAR และอัปโหลดไฟล์ไปยังรูทเอกสารของเว็บเซิร์ฟเวอร์ของคุณ
wget -c https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
tar xzf roundcubemail-1.4.9-complete.tar.gz
mv roundcubemail-1.4.9 /var/www/html/roundcubemail
11. จากนั้น ตั้งค่าการอนุญาตที่เหมาะสมในไฟล์ Roundcube webroot
chown -R nginx:nginx /var/www/html/roundcubemail
ขั้นตอนที่ 4: กำหนดค่าบล็อกเซิร์ฟเวอร์ Nginx สำหรับตัวติดตั้งเว็บ Roundcube
12. ตอนนี้สร้างบล็อกเซิร์ฟเวอร์ Nginx สำหรับ Roundcube ภายใต้ /etc/nginx/conf.d/ (คุณสามารถตั้งชื่อไฟล์ตามที่คุณต้องการได้ แต่ควรมี ส่วนขยาย .conf)
vim /etc/nginx/conf.d/mail.example.com.conf
เพิ่มการกำหนดค่าต่อไปนี้ในไฟล์
server {
listen 80;
server_name mail.example.com;
root /var/www/html/roundcubemail;
index index.php index.html;
#i# Logging
access_log /var/log/nginx/mail.example.com_access_log;
error_log /var/log/nginx/mail.example.com_error_log;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(config|temp|logs)/ {
deny all;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
บันทึกไฟล์และปิด
13. จากนั้น เปิดไฟล์ /etc/php-fpm.d/www.conf เพื่อทำการเปลี่ยนแปลงเล็กน้อยกับเว็บ PHP-FPM คำสั่ง
vim /etc/php-fpm.d/www.conf
เปลี่ยนผู้ใช้ apache เป็น nginx ในตัวแปรต่อไปนี้
user = nginx
group = nginx
จากนั้นใส่เครื่องหมายความคิดเห็นในบรรทัด listen=127.0.0.1:9000 และตั้งค่าตัวแปร Listen ให้ฟังบนซ็อกเก็ต Unix ที่ตั้งค่าไว้ในไฟล์บล็อกเซิร์ฟเวอร์ nginx:
listen = /var/run/php-fpm/php-fpm.sock
นอกจากนี้ ให้ตั้งค่าการอนุญาตสำหรับซ็อกเก็ต UNIX ยกเลิกหมายเหตุ และเปลี่ยนบรรทัดเป็น:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
เมื่อเสร็จแล้วให้บันทึกไฟล์และปิด
14. จากนั้นรีสตาร์ทบริการ Nginx และ PHP-FPM เพื่อใช้การเปลี่ยนแปลงล่าสุด ดังต่อไปนี้
systemctl restart nginx php-fpm
ขั้นตอนที่ 5: เข้าถึง Roundcube Web UI
15. ก่อนที่คุณจะเริ่มตัวช่วยสร้างการติดตั้ง เพื่อหลีกเลี่ยงข้อผิดพลาดของเซสชัน ให้ตั้งค่าการอนุญาตที่เหมาะสมบนไดเร็กทอรี /var/lib/php/session/ เจ้าของกลุ่มเริ่มต้นคือ apache เปลี่ยนเป็น nginx ตามที่แสดง
ls -ld /var/lib/php/session/
chown :nginx /var/lib/php/session/
ls -ld /var/lib/php/session/
16. ตอนนี้เปิดเบราว์เซอร์และใช้ที่อยู่ http://mail.example.com/installer
(แทนที่โดเมนด้วยชื่อเซิร์ฟเวอร์ที่คุณตั้งไว้ขณะสร้างบล็อกเซิร์ฟเวอร์ Nginx สำหรับ Roundcube) เพื่อเข้าถึงตัวติดตั้งเว็บ หากการตั้งค่า PHP เวอร์ชัน ส่วนขยาย และ php.ini/.htaccess ทั้งหมดถูกต้อง คุณจะเห็นภาพหน้าจอต่อไปนี้ คลิก ถัดไป เพื่อไปที่หน้าการกำหนดค่า
http://mail.example.com/installer
OR
http://IP-address/installer
17. หน้าการกำหนดค่าช่วยให้คุณสามารถตั้งค่าอินสแตนซ์ Roundcube ของคุณได้ เราจะอธิบายเฉพาะตัวเลือกที่สำคัญสำหรับขอบเขตของคู่มือนี้เท่านั้น
ใต้ การกำหนดค่าทั่วไป ให้ตั้งค่า product_name เช่น Example.com Webmail
ไปที่ การตั้งค่าฐานข้อมูล ป้อน โฮสต์ฐานข้อมูล, ชื่อ, ผู้ใช้ และ รหัสผ่าน เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL
จากนั้นเลื่อนลงไปที่การตั้งค่า IMAP และ SMTP และป้อนที่อยู่ IP ของเซิร์ฟเวอร์ IMAP และ SMTP ของคุณ หากเป็น เซิร์ฟเวอร์เดียวกับที่คุณใช้ Roundcube ปล่อยให้เป็น “localhost ” และระบุพารามิเตอร์ที่จำเป็นอื่นๆ ด้วย
คุณสามารถระบุการตั้งค่าอื่นๆ ตามความต้องการของคุณได้ เมื่อเสร็จแล้ว ให้คลิก สร้างการกำหนดค่า
18. ตอนนี้คุณควรเห็นข้อความว่า ”ไฟล์ปรับแต่งได้รับการบันทึกลงในไดเร็กทอรี /var/www/html/roundcubemail/config ของการติดตั้ง Roundcube ของคุณเรียบร้อยแล้ว ” คลิกที่ ดำเนินการต่อ
19. คุณสามารถตรวจสอบการกำหนดค่าของคุณได้จากหน้าทดสอบการกำหนดค่า ดังที่แสดงในภาพหน้าจอต่อไปนี้
20. จากนั้น ลบโฟลเดอร์ตัวติดตั้งทั้งหมด (ซึ่งประกอบด้วยไฟล์ที่อาจเปิดเผยข้อมูลการกำหนดค่าที่ละเอียดอ่อน เช่น รหัสผ่านเซิร์ฟเวอร์และคีย์การเข้ารหัสสู่สาธารณะ) ออกจากไดเร็กทอรีรากของ Roundcube (หรือตรวจสอบให้แน่ใจว่า ตัวเลือก Enable_installer ใน config.inc.php ถูก ปิดใช้งาน)
rm -rf /var/www/html/roundcubemail/installer
21. สุดท้าย ใช้ URL http://mail.example.com เพื่อเข้าถึงหน้าเข้าสู่ระบบ Roundcube ป้อนชื่อผู้ใช้และรหัสผ่านของคุณเพื่อดูอีเมลของคุณ
สรุป
Roundcube เป็นโปรแกรมรับส่งเมลหลายภาษาบนเว็บที่มีคุณลักษณะครบถ้วนและมีการใช้งานกันอย่างแพร่หลาย ในบทความนี้ เราได้แสดงวิธีติดตั้ง Roundcube Webmail เวอร์ชันเสถียรล่าสุดบน CentOS/RHEL 8/7 ด้วยเว็บเซิร์ฟเวอร์ Nginx หากคุณมีคำถามใด ๆ โปรดใช้แบบฟอร์มคำติชมด้านล่างเพื่อติดต่อเรา