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

Posted on Sat, 07/04/2026 - 17:38 by Chatchawan_Narkpan

ปัญหา

อุปสรรค

แนวทางแก้ไขปัญหา

ข้อเสนอแนะ

XAMPP Apache Start ไม่ได้

Port 80 ถูกใช้งานโดย IIS หรือ Service อื่น

หยุด IIS ด้วยคำสั่ง iisreset /stop หรือแก้ไข httpd.conf ให้ใช้ Port 8080 แล้ว Restart Apache ผ่าน XAMPP Control Panel

ควรตรวจสอบ Service ที่ใช้ Port 80 ด้วย netstat -ano ก่อนเริ่ม Apache และตั้ง Startup type ของ IIS เป็น Manual เพื่อป้องกันการชนกันของ Port

หน้าเว็บขาว (White Screen of Death) หลังติดตั้ง Module ใหม่

PHP memory_limit ต่ำเกินไป และ Module มี Dependency ไม่ครบ

แก้ไข php.ini เพิ่ม memory_limit = 256M, max_execution_time = 300 แล้ว Restart Apache หากยังไม่หายให้ปิด Module ผ่าน Drush หรือแก้ไขตาราง system_ ในฐานข้อมูล

ควรตั้ง memory_limit เริ่มต้นที่ 256M และเปิด display_errors ในช่วงพัฒนาเพื่อระบุสาเหตุได้ง่ายขึ้น

Module ที่ต้องการไม่รองรับ Drupal 8.9.11

หลาย Module หยุดพัฒนาหรือย้ายไปรองรับเฉพาะ Drupal 9/10

ค้นหา Module ทางเลือก (Alternative) จาก Drupal.org หรือใช้ Patch จากชุมชน Drupal และทดสอบก่อนใช้จริง

วางแผนอัปเกรดเป็น Drupal 10 ในระยะยาว เพื่อรองรับ Module ใหม่และ Security update ที่ต่อเนื่อง

การนำเข้าฐานข้อมูลผ่าน phpMyAdmin ล้มเหลว

ขนาดไฟล์ SQL เกินขีดจำกัดของ PHP

แก้ไข php.ini: upload_max_filesize = 128M, post_max_size = 128M, max_execution_time = 300 และ Restart Apache

สำหรับฐานข้อมูลขนาดใหญ่ (>50MB) ควรใช้คำสั่ง mysql import ผ่าน command line หรือใช้ Drush เพื่อความเสถียร

ภาษาไทยแสดงผลเป็น ??? หรืออักขระเพี้ยน

Charset/Collation ของ Database ไม่ใช่ utf8mb4

สร้าง Database ใหม่ด้วย utf8mb4_unicode_ci และตั้งค่า my.ini ของ MariaDB ให้ default-character-set=utf8mb4

ตรวจสอบ Collation ทั้งระดับ Database, Table และ Column ให้เป็น utf8mb4 ตั้งแต่แรกเริ่มเพื่อรองรับภาษาไทยและ Emoji

URL alias จาก Pathauto ไม่สร้างอัตโนมัติ

Pattern ยังไม่ถูกกำหนดครบทุก Content type

เข้า Admin > Config > URL aliases > Patterns และเพิ่ม Pattern สำหรับแต่ละ Content type แล้วรัน Bulk update generate URL aliases

ควรกำหนด 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 ชั่วโมง และตรวจสอบ Log เป็นระยะ

การ Upload ไฟล์ล้มเหลว หรือแจ้ง Permission denied

Folder sites/default/files ไม่มีสิทธิ์เขียน (Write)

ตั้งค่าสิทธิ์ Full Control ให้กับ User ที่ Apache รัน (โดยปกติคือ SYSTEM) ผ่าน Properties > Security > Edit

หลังติดตั้ง Drupal ควรตรวจสอบสิทธิ์ของโฟลเดอร์ files/, translations/, private/ ทุกครั้งเพื่อป้องกันปัญหาการ Upload

Backup and Migrate Module ล้มเหลวเมื่อฐานข้อมูลขนาดใหญ่

max_execution_time หมดก่อน Backup เสร็จสมบูรณ์

เพิ่ม max_execution_time เป็น 600 ใน php.ini หรือใช้ Drush: drush sql-dump > backup.sql เพื่อ Backup ผ่าน CLI

สำหรับ Production ควรใช้ Drush หรือ mysqldump ร่วมกับ Task Scheduler เพื่อความน่าเชื่อถือและอัตโนมัติ

การย้ายจาก XAMPP (Apache) ไปยัง IIS มีปัญหา URL Rewrite

IIS ไม่รองรับไฟล์ .htaccess โดยตรง ต้องใช้ web.config

ติดตั้ง URL Rewrite Module ของ IIS และแปลงกฎจาก .htaccess เป็น web.config ด้วยเครื่องมือ IIS Import

ทดสอบ Clean URL, Redirect และ Access rules บน IIS Staging ก่อนย้าย Production เพื่อลดความเสี่ยง

หลังอัปเดต Module เว็บแจ้งข้อผิดพลาด Database schema mismatch

ยังไม่ได้รัน update.php เพื่ออัปเดตโครงสร้างฐานข้อมูล

เข้า http://localhost/workmanual/update.php ในฐานะผู้ใช้ admin แล้วรัน Pending updates ทั้งหมด

ควร Backup ฐานข้อมูลก่อนอัปเดต Module ทุกครั้ง และทดสอบบน Staging environment ก่อนอัปเดตจริง

Composer install/require ล้มเหลวเมื่อเพิ่ม Contributed Module

PHP memory_limit ไม่พอ หรือ PHP version ไม่ตรงกับที่ Module ต้องการ

ใช้คำสั่ง php -d memory_limit=-1 composer.phar require drupal/xxx และตรวจสอบ PHP version ให้ตรงกับ constraint ของ Module

ควรใช้ Composer 2.x และ PHP 7.4 ที่ตรงตามข้อกำหนดของ Drupal 8.9.11 อย่างเคร่งครัด รวมถึงตั้งค่า COMPOSER_MEMORY_LIMIT=-1 ไว้ใน Environment variable

Back to Top