ค้นหาเว็บไซต์

วิธีการติดตั้ง Roundcube Webmail บน CentOS/RHEL 8/7


Roundcube เป็นซอฟต์แวร์เว็บเมล IMAP หลายภาษาแบบโอเพ่นซอร์สที่มีคุณลักษณะครบถ้วนบนเว็บ พร้อมด้วยส่วนติดต่อผู้ใช้แบบแอปพลิเคชันที่ทำงานและปรับแต่งได้อย่างสมบูรณ์ และใช้มาตรฐานเว็บล่าสุด สร้างขึ้นโดยใช้ PHP และมีฟังก์ชันการทำงานเต็มรูปแบบที่คุณคาดหวังได้จากโปรแกรมรับส่งเมลสมัยใหม่

คุณสมบัติ Roundcube:

  • มีหลายภาษา รองรับมากกว่า 70 ภาษา
  • รองรับสมุดที่อยู่แบบค้นหาตามที่คุณพิมพ์
  • รองรับการระบุตัวตนของผู้ส่งหลายราย
  • เสนอการปกป้องความเป็นส่วนตัวที่ซับซ้อน
  • มีสมุดที่อยู่ที่มีคุณสมบัติครบถ้วนพร้อมกลุ่มและตัวเชื่อมต่อ LDAP
  • เสนอการเขียนข้อความ richtext/HTML
  • รองรับการค้นหาข้อความและที่อยู่ติดต่อ
  • รองรับอินเทอร์เนต ชื่อโดเมน (IDNA)
  • รองรับการจัดการโฟลเดอร์ โฟลเดอร์ที่ใช้ร่วมกัน และ ACL
  • ขยายได้โดยใช้ Plug-in API
  • มีฟังก์ชันการตรวจสอบการสะกดคำ
  • มีฟังก์ชันนำเข้า/ส่งออก
  • มี Plug-in API สำหรับส่วนขยายที่ยืดหยุ่น และอื่นๆ อีกมากมาย

ข้อกำหนดของระบบที่แนะนำ:

  1. เซิร์ฟเวอร์ CentOS 8/RHEL 8 หรือ CentOS 7/RHEL 7 ที่มีการติดตั้งน้อยที่สุด
  2. เว็บเซิร์ฟเวอร์ Apache หรือ Nginx
  3. ฐานข้อมูล PHP และ MySQL/MariaDB
  4. เซิร์ฟเวอร์ SMTP และ IMAP พร้อมรองรับ IMAP4 rev1

สำหรับขอบเขตของบทความนี้ เราถือว่าคุณมีเซิร์ฟเวอร์อีเมล Postfix ที่ใช้งานอยู่ซึ่งมีผู้ใช้เสมือนอยู่แล้ว ไม่เช่นนั้น ให้ปฏิบัติตามการตั้งค่าคำแนะนำของเรา:

  1. การตั้งค่าเซิร์ฟเวอร์จดหมาย Postfix และ Dovecot ด้วย MariaDB – ตอนที่ 1
  2. กำหนดค่าผู้ใช้โดเมนเสมือน Postfix และ Dovecot – ส่วนที่ 2
  3. ติดตั้งและรวม 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 หากคุณมีคำถามใด ๆ โปรดใช้แบบฟอร์มคำติชมด้านล่างเพื่อติดต่อเรา