| Apache ของ XAMPP ไม่สามารถเริ่มทำงานได้ |
Port 80 ถูกใช้งานโดย IIS หรือบริการอื่นอยู่ก่อนแล้ว |
หยุดการทำงานของ IIS ด้วยคำสั่ง iisreset /stop หรือแก้ไขไฟล์ httpd.conf ให้เปลี่ยนไปใช้ Port 8080 แล้วสั่ง Restart Apache ผ่าน XAMPP Control Panel |
ควรตรวจสอบบริการที่ใช้งาน Port 80 ด้วยคำสั่ง netstat -ano ก่อนเริ่มใช้งาน Apache และตั้งค่า Startup type ของ IIS เป็น Manual เพื่อป้องกันการชนกันของพอร์ต |
| หน้าเว็บแสดงเป็นหน้าขาว (White Screen of Death) หลังติดตั้งโมดูลใหม่ |
ค่า memory_limit ของ PHP ต่ำเกินไป และโมดูลมีความสัมพันธ์ (Dependency) ไม่ครบถ้วน |
แก้ไขไฟล์ php.ini โดยเพิ่ม memory_limit เป็น 256M และ max_execution_time เป็น 300 แล้ว Restart Apache หากยังไม่สำเร็จ ให้ปิดการทำงานของโมดูลผ่าน Drush หรือแก้ไขตาราง system_ ในฐานข้อมูลโดยตรง |
ควรตั้งค่า memory_limit เริ่มต้นไว้ที่ 256M และเปิดใช้งาน display_errors ในช่วงพัฒนาระบบ เพื่อให้ระบุสาเหตุของปัญหาได้ง่ายขึ้น |
| โมดูลที่ต้องการใช้งานไม่รองรับ Drupal รุ่น 8.9.11 |
โมดูลจำนวนมากหยุดการพัฒนา หรือปรับปรุงให้รองรับเฉพาะ Drupal 9 และ 10 |
ค้นหาโมดูลทางเลือกอื่นจากเว็บไซต์ Drupal.org หรือนำแพตช์ (Patch) จากชุมชนผู้พัฒนามาปรับใช้ พร้อมทดสอบอย่างละเอียดก่อนใช้งานจริง |
ควรวางแผนการอัปเกรดระบบไปสู่ Drupal 10 ในระยะยาว เพื่อให้รองรับโมดูลรุ่นใหม่และการอัปเดตด้านความปลอดภัยอย่างต่อเนื่อง |
| การนำเข้าฐานข้อมูลผ่าน phpMyAdmin ไม่สำเร็จ |
ขนาดไฟล์ SQL เกินขีดจำกัดที่ PHP กำหนดไว้ |
แก้ไขไฟล์ php.ini โดยตั้งค่า upload_max_filesize และ post_max_size เป็น 128M พร้อมปรับ max_execution_time เป็น 300 แล้ว Restart Apache |
สำหรับฐานข้อมูลขนาดใหญ่กว่า 50 เมกะไบต์ ควรใช้คำสั่ง mysql import ผ่านหน้าต่างคำสั่ง (Command Line) หรือใช้ Drush เพื่อความเสถียรของระบบ |
| ข้อความภาษาไทยแสดงผลเป็นเครื่องหมายคำถามหรืออักขระผิดเพี้ยน |
ค่า Charset/Collation ของฐานข้อมูลไม่ได้ตั้งไว้เป็น utf8mb4 |
สร้างฐานข้อมูลใหม่โดยกำหนด Collation เป็น utf8mb4_unicode_ci และตั้งค่าไฟล์ my.ini ของ MariaDB ให้ default-character-set=utf8mb4 |
ควรตรวจสอบค่า Collation ทั้งในระดับฐานข้อมูล ตาราง และคอลัมน์ ให้เป็น utf8mb4 ตั้งแต่เริ่มต้น เพื่อรองรับภาษาไทยได้อย่างถูกต้อง |
| Pathauto ไม่สร้าง URL alias ให้โดยอัตโนมัติ |
ยังไม่ได้กำหนด Pattern ให้ครบทุก Content type |
เข้าไปที่ Admin > Config > URL aliases > Patterns เพื่อเพิ่ม Pattern ให้แต่ละ Content type แล้วสั่ง Bulk update เพื่อสร้าง URL alias |
ควรกำหนด Pattern ทันทีที่มีการสร้าง Content type ใหม่ เพื่อให้โครงสร้าง URL เป็นระบบตั้งแต่แรกเริ่ม |
| ระบบ Cron ของ Drupal ไม่ทำงานโดยอัตโนมัติบน Windows/XAMPP |
ระบบปฏิบัติการ Windows Server ไม่มีบริการ Cron daemon เช่นเดียวกับ Linux |
ใช้ Windows Task Scheduler เรียกใช้งาน URL http://localhost/workmanual/cron.php ตามช่วงเวลาที่กำหนด |
บนระบบใช้งานจริง (Production) ควรตั้ง Task Scheduler ให้เรียกใช้ cron.php ทุก 1 ชั่วโมง และตรวจสอบบันทึกการทำงานเป็นระยะ |
| การอัปโหลดไฟล์ไม่สำเร็จ หรือแจ้งข้อความ Permission denied |
โฟลเดอร์ sites/default/files ไม่มีสิทธิ์ในการเขียนไฟล์ |
กำหนดสิทธิ์ Full Control ให้กับบัญชีผู้ใช้ที่ Apache ใช้ทำงาน (โดยทั่วไปคือ SYSTEM) ผ่านเมนู Properties > Security > Edit |
หลังติดตั้ง Drupal เสร็จ ควรตรวจสอบสิทธิ์ของโฟลเดอร์ files, translations และ private ทุกครั้ง เพื่อป้องกันปัญหาการอัปโหลดไฟล์ |
| โมดูล Backup and Migrate ทำงานล้มเหลวเมื่อฐานข้อมูลมีขนาดใหญ่ |
ค่า max_execution_time หมดเวลาก่อนกระบวนการสำรองข้อมูลจะเสร็จสมบูรณ์ |
เพิ่มค่า max_execution_time เป็น 600 ในไฟล์ php.ini หรือใช้คำสั่ง Drush: drush sql-dump > backup.sql เพื่อสำรองข้อมูลผ่านหน้าต่างคำสั่ง |
สำหรับระบบใช้งานจริง ควรใช้ Drush หรือ mysqldump ร่วมกับ Task Scheduler เพื่อความน่าเชื่อถือและทำงานได้โดยอัตโนมัติ |
| การย้ายระบบจาก XAMPP (Apache) ไปยัง IIS พบปัญหาเรื่อง URL Rewrite |
IIS ไม่รองรับไฟล์ .htaccess โดยตรง จำเป็นต้องใช้ไฟล์ web.config แทน |
ติดตั้งโมดูล URL Rewrite ของ IIS แล้วแปลงกฎจากไฟล์ .htaccess ให้เป็น web.config ด้วยเครื่องมือนำเข้าของ IIS |
ควรทดสอบการทำงานของ Clean URL การเปลี่ยนเส้นทาง (Redirect) และกฎการเข้าถึง (Access rules) บนระบบทดสอบ (Staging) ก่อนย้ายขึ้นระบบใช้งานจริง |
| เว็บไซต์แจ้งข้อผิดพลาด Database schema mismatch หลังอัปเดตโมดูล |
ยังไม่ได้รันสคริปต์ update.php เพื่ออัปเดตโครงสร้างฐานข้อมูล |
เข้าสู่ระบบด้วยบัญชีผู้ดูแล แล้วไปที่ http://localhost/workmanual/update.php เพื่อรันรายการอัปเดตที่ค้างอยู่ทั้งหมด |
ควรสำรองฐานข้อมูลทุกครั้งก่อนอัปเดตโมดูล และทดสอบบนระบบ Staging ก่อนดำเนินการกับระบบใช้งานจริง |
| คำสั่ง Composer install/require ล้มเหลวเมื่อเพิ่มโมดูลเสริม |
ค่า memory_limit ของ PHP ไม่เพียงพอ หรือรุ่นของ PHP ไม่ตรงกับที่โมดูลต้องการ |
ใช้คำสั่ง php -d memory_limit=-1 composer.phar require drupal/xxx และตรวจสอบให้รุ่นของ PHP ตรงกับเงื่อนไขที่โมดูลกำหนด |
ควรใช้ Composer รุ่น 2.x ร่วมกับ PHP ให้ตรงตามข้อกำหนดของ Drupal อย่างเคร่งครัด และตั้งค่า COMPOSER_MEMORY_LIMIT=-1 ไว้ใน Environment variable |