ปัญหา อุปสรรค แนวทางแก้ไขปัญหา ข้อเสนอแนะ

Posted on Sat, 07/04/2026 - 17:38 by Chatchawan_Narkpan
ปัญหา อุปสรรค แนวทางแก้ไขปัญหา ข้อเสนอแนะ
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
Back to Top