Drupal คืออะไร และวิธีติดตั้งบน Cloud Server
Drupal คือ CMS โอเพนซอร์สที่ออกแบบมาสำหรับเว็บไซต์ขนาดใหญ่ที่มีโครงสร้างเนื้อหาซับซ้อนและมีผู้ใช้หลายระดับสิทธิ์ เป็นตัวเลือกยอดนิยมของหน่วยงานภาครัฐและมหาวิทยาลัยทั่วโลก
- หมวดหมู่
- CMS และเว็บไซต์
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- GPLv2 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Drupal คืออะไร
Drupal เป็น CMS ที่เขียนด้วย PHP เช่นเดียวกับ WordPress แต่วางโครงสร้างต่างกันตั้งแต่ราก แนวคิดของ Drupal คือทุกอย่างเป็น Entity ที่กำหนดฟิลด์เองได้ ทำให้สร้างชนิดเนื้อหาที่ซับซ้อน เช่น ฐานข้อมูลโครงการ ทะเบียนบุคลากร หรือระบบเอกสารราชการ ได้โดยไม่ต้องพึ่งปลั๊กอินภายนอก
จุดแข็งที่ทำให้องค์กรใหญ่เลือก Drupal คือระบบสิทธิ์ผู้ใช้ที่ละเอียดมาก กำหนดได้ถึงระดับว่าใครแก้ฟิลด์ไหนของเนื้อหาประเภทใดได้บ้าง รวมถึง Workflow การอนุมัติก่อนเผยแพร่ ซึ่งจำเป็นสำหรับหน่วยงานที่มีขั้นตอนตรวจสอบเนื้อหา
แลกกับความยืดหยุ่นคือความชันของการเรียนรู้ที่สูงกว่า และต้องใช้ Composer จัดการโมดูล ทีมที่ดูแล Drupal จึงควรมีนักพัฒนา PHP อยู่ด้วย ต่างจาก WordPress ที่ทีมคอนเทนต์ดูแลเองได้เกือบทั้งหมด
ความสามารถเด่นของ Drupal
โครงสร้างเนื้อหาแบบกำหนดเอง
สร้าง Content Type และฟิลด์ได้อิสระ เหมาะกับข้อมูลที่มีความสัมพันธ์ซับซ้อน
ระบบสิทธิ์ละเอียดระดับฟิลด์
กำหนด Role และสิทธิ์ได้ลึก พร้อม Workflow อนุมัติก่อนเผยแพร่
Views ในแกนหลัก
สร้างหน้ารายการและตัวกรองข้อมูลได้จากหลังบ้านโดยไม่ต้องเขียนคิวรี
รองรับหลายภาษาในแกนหลัก
แปลได้ทั้งเนื้อหา เมนู และส่วนติดต่อผู้ใช้ เหมาะกับเว็บสองภาษาของหน่วยงาน
ความปลอดภัยระดับองค์กร
มีทีม Security ของโครงการออกประกาศช่องโหว่และแพตช์อย่างเป็นระบบ
ใช้เป็น Headless CMS ได้
เปิด JSON:API เพื่อส่งเนื้อหาให้เว็บหรือแอปที่พัฒนาแยกต่างหาก
ใช้ Drupal ทำอะไรได้บ้าง
- เว็บไซต์หน่วยงานราชการที่มีเนื้อหาหลายประเภทและหลายผู้ดูแล
- เว็บมหาวิทยาลัยและคณะที่ต้องรวมหลายไซต์ไว้ในระบบเดียว
- เว็บองค์กรขนาดใหญ่ที่ต้องมีขั้นตอนอนุมัติก่อนเผยแพร่
- พอร์ทัลข้อมูลเปิดที่ต้องเปิด API ให้ระบบอื่นดึงไปใช้
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นเว็บหน่วยงานขนาดเล็กถึงกลาง | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำเว็บที่มีโมดูลมากและผู้ดูแลหลายสิบคน | 4 vCPU | 8 GB | NVMe 100 GB |
| องค์กรใหญ่หลายไซต์ในระบบเดียว หรือมีทราฟฟิกสูงต่อเนื่อง | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 200 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Drupal บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
- PHP 8.3 พร้อมส่วนขยาย gd, xml, mbstring, curl, zip และ opcache
- MariaDB 10.6 ขึ้นไป, MySQL 8.0 ขึ้นไป หรือ PostgreSQL 16
- Composer 2 สำหรับติดตั้งแกนหลักและโมดูล
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้งเว็บเซิร์ฟเวอร์ ฐานข้อมูล และ PHP
sudo apt update sudo apt -y install nginx mariadb-server php8.3-fpm php8.3-mysql php8.3-gd \ php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip php8.3-opcache unzip curl - 2
ติดตั้ง Composer
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer - 3
สร้างฐานข้อมูลสำหรับ Drupal
sudo mysql -e "CREATE DATABASE drupal CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" sudo mysql -e "CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'ChangeThisStrongPassword';" sudo mysql -e "GRANT ALL ON drupal.* TO 'drupal'@'localhost'; FLUSH PRIVILEGES;" - 4
สร้างโปรเจกต์ Drupal ด้วย Composer
cd /var/www sudo composer create-project drupal/recommended-project drupal sudo chown -R www-data:www-data /var/www/drupal - 5
ตั้งค่า Nginx ให้ชี้ไปที่โฟลเดอร์ web
Document root ของ Drupal คือ /var/www/drupal/web ไม่ใช่โฟลเดอร์โปรเจกต์ชั้นนอก ตั้งผิดจุดนี้จะเปิดไฟล์ตั้งค่าให้คนภายนอกเห็นได้
server { listen 80; server_name example.go.th; root /var/www/drupal/web; index index.php; location / { try_files $uri /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; } } - 6
ติดตั้งผ่านเบราว์เซอร์และออก SSL
เปิดโดเมนแล้วทำตามตัวช่วยติดตั้ง จากนั้นออกใบรับรองด้วย certbot และตั้ง Cron ของ Drupal ให้รันทุกชั่วโมง
sudo apt -y install certbot python3-certbot-nginx sudo certbot --nginx -d example.go.th
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 80 | TCP | HTTP และการต่ออายุใบรับรอง |
| 443 | TCP | HTTPS |
| 22 | TCP | SSH สำหรับผู้ดูแลระบบ |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ตั้ง Document root ที่โฟลเดอร์ web เท่านั้น เพื่อไม่ให้ไฟล์ตั้งค่าและ vendor ถูกเข้าถึงจากภายนอก
- ติดตามประกาศความปลอดภัยของ Drupal และอัปเดตแกนหลักกับโมดูลทันทีที่มีแพตช์
- จำกัดสิทธิ์เขียนไฟล์ของ settings.php หลังติดตั้งเสร็จ
- เปิด Two-factor Authentication ให้บัญชีผู้ดูแล และปิดบัญชี user/1 ไม่ให้ใช้งานประจำวัน
- ตั้ง Backup ฐานข้อมูลและโฟลเดอร์ sites/default/files อัตโนมัติ
ทำไมควรรัน Drupal บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
หน่วยงานรัฐและมหาวิทยาลัยที่ใช้ Drupal ส่วนใหญ่ต้องเก็บข้อมูลในประเทศ ซึ่ง Data Center ในไทยตอบโจทย์โดยตรง
Drupal กิน RAM มากกว่า CMS ทั่วไปเมื่อเปิดหลายโมดูล การเพิ่ม RAM บนคลาวด์ทำได้ทันทีโดยไม่ต้องเปลี่ยนเครื่อง
รองรับการแยกเซิร์ฟเวอร์ฐานข้อมูลออกจากเว็บเมื่อระบบโตขึ้น โดยเชื่อมกันผ่าน Private Network ที่ไม่คิดค่าทราฟฟิกภายใน
ทีมวิศวกรไทยช่วยดูแลแพตช์ความปลอดภัยตามรอบให้ได้ ผ่านบริการ Managed Services
คำถามที่พบบ่อยเกี่ยวกับ Drupal
Drupal ต่างจาก WordPress อย่างไร ควรเลือกตัวไหน
WordPress เหมาะกับเว็บที่เน้นเนื้อหาและอยากให้ทีมการตลาดดูแลเองได้ ส่วน Drupal เหมาะกับเว็บที่มีโครงสร้างข้อมูลซับซ้อนและต้องการระบบสิทธิ์กับ Workflow อนุมัติที่ละเอียด ถ้าองค์กรมีนักพัฒนา PHP อยู่แล้วและต้องการควบคุมโครงสร้างข้อมูลเอง Drupal จะคุ้มกว่าในระยะยาว
Drupal เหมาะกับเว็บหน่วยงานราชการไทยไหม
เหมาะมาก เพราะรองรับสองภาษาในแกนหลัก มีระบบอนุมัติก่อนเผยแพร่ และมีประวัติการแพตช์ความปลอดภัยที่เป็นระบบ หลายหน่วยงานทั่วโลกใช้ Drupal เป็นมาตรฐานของเว็บภาครัฐ
ติดตั้ง Drupal โดยไม่ใช้ Composer ได้ไหม
ทำได้แต่ไม่แนะนำ เพราะการอัปเดตแกนหลักและโมดูลรวมถึงการแก้ปัญหาไลบรารีที่ขัดกันจะยุ่งยากมาก แนวทางที่โครงการแนะนำคือใช้ Composer ตั้งแต่ต้น
Drupal ใช้ PostgreSQL แทน MySQL ได้ไหม
ได้ Drupal รองรับ PostgreSQL อย่างเป็นทางการ และเป็นตัวเลือกที่ดีถ้าองค์กรมีมาตรฐานใช้ PostgreSQL อยู่แล้ว
ทางเลือกอื่นที่คล้ายกับ Drupal
แอปอื่นในหมวด CMS และเว็บไซต์
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Drupal ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด