เมื่อ Cloud VPS ของคุณมีพื้นที่ดิสก์เหลือน้อย WordPress อาจทำงานผิดปกติ เช่น อัปโหลดไฟล์ไม่ได้ สร้างโพสต์ใหม่ไม่ได้ หรือแม้แต่หน้าเว็บแสดง Error บทความนี้จะแนะนำวิธีตรวจสอบและจัดการพื้นที่ Disk บน Cloud VPS ของ Dot Enterprise อย่างมีประสิทธิภาพ
ทำไมการจัดการ Disk Space จึงสำคัญสำหรับ WordPress
Disk Space คือหน่วยความจำที่ใช้เก็บไฟล์เว็บไซต์ของคุณ เมื่อพื้นที่เต็มหรือเหลือน้อย WordPress จะประสบปัญหาต่าง ๆ ได้แก่:
- ไม่สามารถอัปโหลดรูปภาพหรือไฟล์ได้
- ฐานข้อมูลไม่สามารถบันทึกข้อมูลใหม่ได้
- สร้างโพสต์หรือหน้าเว็บใหม่ไม่ได้
- ปลั๊กอินไม่สามารถบันทึก Configuration ได้
- Backup อัตโนมัติไม่ทำงาน
- ความเร็วเว็บไซต์ลดลงอย่างรุนแรง
- Email ไม่สามารถส่งขาออกได้
สำหรับผู้ใช้บริการ Cloud VPS จาก Dot Enterprise สิ่งสำคัญคือต้องตรวจสอบและจัดการพื้นที่ Disk อย่างสม่ำเสมอ เพื่อให้เว็บไซต์ทำงานได้อย่างราบรื่นตลอดเวลา
ตรวจสอบพื้นที่ดิสก์บน Cloud VPS
ขั้นแรก คุณต้องเข้า SSH ไปยัง Cloud VPS ของคุณ จากนั้นรันคำสั่งต่อไปนี้เพื่อดูสถานะพื้นที่ดิสก์ทั้งหมด:
df -h
คำสั่งนี้จะแสดงผล Output ที่มีข้อมูลดังนี้:
- Filesystem: ชื่อของพาร์ติชัน
- Size: ขนาดทั้งหมดของพาร์ติชัน
- Used: พื้นที่ที่ใช้ไปแล้ว
- Avail: พื้นที่ว่างที่เหลือ
- Use%: เปอร์เซ็นต์การใช้งาน
- Mounted on: ที่ที่ Mount พาร์ติชัน
ถ้า Use% แสดงค่ามากกว่า 80% ขึ้นไป แสดงว่าพื้นที่กำลังจะเต็มแล้ว ควรลบไฟล์ที่ไม่จำเป็นออก
ต่อไป ให้ค้นหาว่าโฟลเดอร์ไหนใช้พื้นที่มากที่สุด:
du -sh /var/www/html/* | sort -rh | head -20
คำสั่งนี้จะแสดงเรียงลำดับจากโฟลเดอร์ที่ใช้พื้นที่มากที่สุด ช่วยให้คุณรู้ว่าจะต้องลบหรือจัดการสิ่งใด
ลบไฟล์ขยะและ Post Revisions ของ WordPress
WordPress สร้างไฟล์ขยะหลายประเภท ได้แก่:
- Post Revisions – WordPress บันทึกสำเนาของแต่ละการแก้ไขโพสต์ เมื่อเวลาผ่านไป revisions เหล่านี้จะเก็บสะสมและใช้พื้นที่มากขึ้น
- Auto-drafts – โพสต์ที่ยังไม่สำเร็จจะบันทึก auto-save ไว้
- Trash Posts – โพสต์ที่ลบแล้วจะเก็บไว้ใน trash ประมาณ 30 วัน
- Transients ที่หมดอายุ – Cache ชั่วคราวในฐานข้อมูลที่ไม่ถูกลบอัตโนมัติ
เมื่อใช้ WP-CLI (WordPress Command Line Interface) คุณสามารถลบไฟล์เหล่านี้ได้ง่าย ๆ ก่อนอื่น ให้ติดตั้ง WP-CLI ถ้ายังไม่ได้ติดตั้ง:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
เมื่อติดตั้งเสร็จแล้ว ให้รันคำสั่งต่อไปนี้เพื่อลบ Post Revisions ทั้งหมด:
wp post delete $(wp post list --post_type='revision' --format=ids) --force
ลบ Auto-drafts ที่ไม่จำเป็น:
wp post delete $(wp post list --post_status='auto-draft' --format=ids) --force
ลบโพสต์ที่อยู่ใน Trash:
wp post delete $(wp post list --post_status='trash' --format=ids) --force
ลบ Transients ที่หมดอายุออกจากฐานข้อมูล:
wp transient delete --expired
ลบไฟล์ Log เก่า
Log Files คือไฟล์บันทึกของระบบ ซึ่งมักเก็บข้อมูลต่าง ๆ เช่น error logs, access logs ของ Apache/Nginx เป็นต้น ไฟล์เหล่านี้สามารถเก็บสะสมและใช้พื้นที่ได้มาก โดยเฉพาะในกรณีที่เว็บไซต์มีปัญหา
ตรวจสอบขนาดของไฟล์ log ต่าง ๆ:
du -sh /var/log/*
du -sh /var/www/html/wp-content/debug.log
หากพบไฟล์ log ที่ใหญ่เกินไป คุณสามารถลบหรือตัดเนื้อหาของ log ได้ โดยสำหรับ WordPress debug log:
truncate -s 0 /var/www/html/wp-content/debug.log
สำหรับ Apache/Nginx logs:
sudo truncate -s 0 /var/log/apache2/access.log
sudo truncate -s 0 /var/log/apache2/error.log
sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log
วิธีนี้จะลบเนื้อหาของ log แต่ยังเก็บไฟล์ไว้ เพื่อให้ระบบสามารถเขียนข้อมูลใหม่ลงไปได้ต่อไป
ลบ Backup เก่า
หลาย ๆ ปลั๊กอิน Backup เช่น UpdraftPlus, BackWPup, Duplicator มักเก็บ Backup ไว้บน VPS แทนที่จะเก็บไว้บน Cloud Storage ตรวจสอบและลบ Backup เก่าที่ไม่จำเป็น:
du -sh /var/www/html/wp-content/updraft/
ls -lah /var/www/html/wp-content/updraft/
หากมี Backup ไฟล์ที่เก่านัก คุณสามารถลบได้:
rm /var/www/html/wp-content/updraft/backup_*.zip
วิธีที่ดีกว่าคือให้ตั้งค่าปลั๊กอิน Backup ให้เก็บเฉพาะ Backup จำนวนหนึ่ง (เช่น 3 versions ล่าสุด) และส่ง Backup ไปยัง Cloud Storage เช่น AWS S3 หรือ Google Drive แทน
ลบรูปภาพ Thumbnail ที่ไม่ได้ใช้
เมื่อคุณอัปโหลดรูปภาพลงใน WordPress Gallery WordPress จะสร้าง Thumbnail ขนาดต่าง ๆ โดยอัตโนมัติ เช่น thumbnail, medium, large เหล่านี้ยังคงเก็บไว้แม้ว่าคุณลบรูปภาพต้นฉบับแล้ว
คุณสามารถใช้ปลั๊กอิน “EWWW Image Optimizer” หรือ “Imagify” เพื่อทำความสะอาดและ Optimize รูปภาพขนาดใหญ่ลง หรือใช้คำสั่ง CLI:
find /var/www/html/wp-content/uploads -type f \( -name "*-100x100.jpg" -o -name "*-150x150.jpg" \) -delete
ทำความสะอาด Temporary และ Cache Files
ปลั๊กอิน Caching เช่น WP Super Cache, W3 Total Cache สร้างไฟล์ cache ขนาดใหญ่ หากคุณเปลี่ยนปลั๊กอินหรือทำความสะอาด ลบไฟล์ cache เหล่านี้:
rm -rf /var/www/html/wp-content/cache/*
rm -rf /var/www/html/wp-content/wp-super-cache/*
rm -rf /var/www/html/wp-content/w3tc-logs/*
นอกจากนี้ยังมีไฟล์ temporary ของระบบที่อาจเก็บไว้ใน /tmp:
sudo du -sh /tmp
sudo rm -rf /tmp/*
ตั้งค่าป้องกันและติดตามพื้นที่ Disk ในอนาคต
เพื่อหลีกเลี่ยงปัญหาพื้นที่เต็มในอนาคต ให้ทำการตั้งค่าดังต่อไปนี้:
1. จำกัด Post Revisions
แก้ไขไฟล์ wp-config.php เพิ่มบรรทัดต่อไปนี้:
define( 'WP_POST_REVISIONS', 3 );
ทำให้ WordPress เก็บเฉพาะ 3 versions ล่าสุด
2. ตั้ง Cron Job เพื่อทำความสะอาดอัตโนมัติ
เพิ่ม Cron Job เพื่อลบ Log และ Transients อัตโนมัติทุกสัปดาห์:
0 3 * * 0 truncate -s 0 /var/www/html/wp-content/debug.log
0 3 * * 0 wp transient delete --expired
3. ติดตามพื้นที่ Disk ด้วย Monitoring Tool
ใช้ปลั๊กอิน “WP Control” หรือ “Disk Usage Monitor” เพื่อติดตามพื้นที่ Disk จากแดชบอร์ด WordPress
4. ย้าย Media ไปยัง Object Storage
สำหรับผู้ใช้บริการ Cloud VPS ของ Dot Enterprise สามารถใช้บริการ Cloud Storage (S3-compatible) เพื่อเก็บรูปภาพและไฟล์ขนาดใหญ่ แทนที่จะเก็บบน VPS โดยตรง ช่วยประหยัดพื้นที่ Disk ของ VPS ได้อย่างมาก
5. ตั้ง Alert เมื่อ Disk เหลือน้อย
ใช้เครื่องมือ Monitoring เช่น Nagios หรือ Zabbix เพื่อส่ง Alert เมื่อพื้นที่ Disk ใกล้เต็ม
สรุป
การจัดการ Disk Space บน Cloud VPS ของ Dot Enterprise เป็นสิ่งสำคัญเพื่อให้เว็บไซต์ WordPress ทำงานได้อย่างมีประสิทธิภาพ การลบไฟล์ขยะ WordPress, Log เก่า, Backup ที่ไม่จำเป็น, Thumbnail ที่ไม่ได้ใช้ และไฟล์ Cache ช่วยให้ VPS มีพื้นที่เพียงพอ นอกจากนี้ยังควรตั้งค่าป้องกันในอนาคตเช่น จำกัด Post Revisions, ตั้ง Cron Job เพื่อทำความสะอาดอัตโนมัติ, ย้าย Media ไปยัง Object Storage, และติดตามพื้นที่ Disk อย่างสม่ำเสมอ เพียงเท่านี้ก็ป้องกันปัญหาพื้นที่เต็มในอนาคตได้อย่างมีประสิทธิภาพ

