ปัญหา ไม่สามารถ deactivet plung in ได้
แต่เข้าเว็บได้
admin ได้
ลบ pluginได้
โพสได้
There has been a critical error on this website. Please check your site admin email inbox for instructions. If you continue to have problems, please try the support forums.
Lea
Gemini said
อาการนี้ค่อนข้างแปลกแต่เจอได้ครับ คือคุณยังมีสิทธิ์ (Permissions) ในการเขียนไฟล์หรือโพสต์เนื้อหา แต่ระบบ PHP หรือ Database กลับ “ขัดข้อง” เฉพาะตอนที่จะสั่งหยุดการทำงานของ Plugin (Deactivate) จนเกิด Critical Error
สาเหตุส่วนใหญ่เกิดจาก Code Conflict หรือ Memory Limit ที่ชนกันจังหวะที่ WordPress กำลังจะอัปเดตฐานข้อมูลว่า “ปิดใช้งานตัวนี้แล้วนะ”
นี่คือวิธีแก้ปัญหาไล่จากง่ายไปหายากครับ:
1. วิธีแก้ขัด: ปิดผ่าน FTP หรือ File Manager (แนะนำ)
ในเมื่อกดในหน้า Admin แล้ว Error ให้เราไปสั่ง “ปิด” มันที่ตัวไฟล์โดยตรงครับ
- เข้าไปที่ File Manager (ใน Hosting) หรือใช้ FTP
- ไปที่โฟลเดอร์
/wp-content/plugins/ - หาโฟลเดอร์ของ Plugin ตัวที่มีปัญหา แล้วทำการ Rename (เปลี่ยนชื่อ) เช่น จาก
my-pluginเป็นmy-plugin-OLD - กลับไปที่หน้า WordPress Admin ระบบจะหาไฟล์ไม่เจอและบังคับ Deactivate ให้เองโดยอัตโนมัติ
2. ตรวจสอบ Error Log (เพื่อแก้ที่ต้นเหตุ)
ข้อความ “Critical Error” มักจะมาพร้อมกับรายละเอียดในอีเมล แต่ถ้าหาไม่เจอ ให้เปิด Debug Mode ครับ:
- เปิดไฟล์
wp-config.php - หาบรรทัด
define( 'WP_DEBUG', false );เปลี่ยนเป็นtrue - ลองกด Deactivate อีกครั้ง คุณจะเห็นข้อความ Error ตัวแดงๆ บอกชัดเจนว่าไฟล์ไหน บรรทัดไหนที่มีปัญหา (เช่น Memory exhausted หรือ Syntax error)
3. เพิ่มขีดจำกัดหน่วยความจำ (PHP Memory Limit)
บางครั้งการ Deactivate ต้องใช้ทรัพยากรในการเคลียร์ Cache หรือ Database ชั่วคราว หาก RAM ของ Hosting เต็มจะค้างทันที
- ลองเพิ่มโค้ดนี้ใน
wp-config.php:define('WP_MEMORY_LIMIT', '256M');
4. ปัญหาจาก Plugin “ตัวอื่น” หรือ Theme
บางครั้ง Plugin A พยายามจะเรียกใช้ฟังก์ชันจาก Plugin B ตลอดเวลา พอคุณจะปิด Plugin B ตัว Plugin A เลยทำหน้าเว็บพัง
- วิธีเช็ก: ลองสลับไปใช้ Theme พื้นฐาน (เช่น Twenty Twenty-Four) แล้วลอง Deactivate ดูอีกครั้ง
ตารางสรุปอาการ
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ |
| ลบได้ แต่ Deactivate ไม่ได้ | สคริปต์ตอนปิด (Deactivation Hook) มีบั๊ก | เปลี่ยนชื่อโฟลเดอร์ใน FTP |
| โพสต์ได้ ปกติทุกอย่าง | ฐานข้อมูลส่วนเนื้อหาปกติ แต่ส่วน Option มีปัญหา | เช็ก Database Tables ว่าเต็มหรือไม่ |
| Critical Error เฉพาะจุด | PHP Version ไม่รองรับกับตัว Plugin | อัปเดต PHP ใน Hosting เป็น 8.1 หรือ 8.2 |
คำแนะนำเพิ่มเติม: หากคุณเพิ่งติดตั้ง Plugin “Security” หรือ “Caching” บางตัวมา ตัวนั้นแหละครับมักจะเป็นตัวการที่บล็อกการเปลี่ยนแปลงระบบ
อยากให้ผมช่วยดู Error Log ที่ระบบแจ้งในอีเมลไหมครับ? ถ้าก๊อปปี้ส่วนที่เขียนว่า “Error Details” มาวาง ผมจะวิเคราะห์ได้แม่นยำขึ้นครับ
You said
define( ‘WP_DEBUG’, false ); ไม่มี
Gemini said
หากในไฟล์ wp-config.php ไม่มีบรรทัด define( 'WP_DEBUG', false ); แสดงว่า WordPress ใช้ค่าเริ่มต้นคือการ ปิด การแจ้งเตือนครับ
คุณสามารถ เพิ่มเข้าไปเองได้เลย เพื่อให้ระบบโชว์ว่ามันพังที่บรรทัดไหน โดยทำตามขั้นตอนดังนี้ครับ:
1. วิธีเพิ่ม Code เพื่อเปิด Debug
ให้เปิดไฟล์ wp-config.php แล้วเลื่อนลงไปด้านล่าง (ก่อนถึงบรรทัดที่เขียนว่า /* That's all, stop editing! Happy publishing. */) แล้ววางโค้ดชุดนี้ลงไปครับ:
PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
- WP_DEBUG: เปิดระบบตรวจสอบข้อผิดพลาด
- WP_DEBUG_LOG: ให้ระบบสร้างไฟล์ชื่อ
debug.logไว้ในโฟลเดอร์/wp-content/(เอาไว้ดูย้อนหลังได้) - WP_DEBUG_DISPLAY: ให้แสดงข้อความ Error บนหน้าจอเว็บโดยตรง
2. เมื่อเพิ่มแล้วให้ทำสิ่งนี้:
- กลับไปที่หน้า Admin ของ WordPress
- ลองกด Deactivate Plugin ตัวที่มีปัญหาอีกครั้ง
- แทนที่จะขึ้นแค่ “Critical Error” คราวนี้ระบบจะพ่นข้อความภาษาอังกฤษยาวๆ ออกมา
- สังเกตคำว่า:
Fatal error: ... in /home/.../wp-content/plugins/ชื่อปลั๊กอิน/... on line XX
3. วิธีแก้ปัญหาเฉพาะหน้า (ถ้าหาบรรทัดไม่เจอ)
ในเมื่อคุณบอกว่า “ลบ Plugin ได้” ถ้า Plugin ตัวนั้นไม่ได้เก็บข้อมูลสำคัญที่ห้ามหาย (เช่น ข้อมูลการตั้งค่าที่ซับซ้อน) แนะนำให้ใช้ “ไม้ตาย” นี้ครับ:
- จดชื่อ Plugin ที่ต้องการจะปิดไว้
- กด Delete (ลบ) ทิ้งไปเลยครับ (แทนที่จะกด Deactivate)
- ระบบ WordPress จะทำการลบไฟล์และสั่งหยุดการทำงานโดยอัตโนมัติ
- หากยังจำเป็นต้องใช้ ให้ลอง ติดตั้งใหม่ (Re-install) อีกครั้ง บางครั้งไฟล์เดิมอาจจะเสียหาย (Corrupted) การลงใหม่จะช่วยเคลียร์ไฟล์ที่มีปัญหาได้ครับ
ข้อควรระวัง: เมื่อแก้ไขเสร็จแล้ว อย่าลืมกลับมาเปลี่ยน true ให้เป็น false หรือลบบรรทัดที่เพิ่มไปออกด้วยนะครับ เพื่อความปลอดภัยและไม่ให้หน้าเว็บโชว์ Code ให้คนทั่วไปเห็น
ถ้าเปิด Debug แล้วมีข้อความ Error โผล่มา สามารถก๊อปปี้มาวางให้ผมช่วยดูได้เลยนะครับ ว่ามันตีกับไฟล์ไหน?
You said
มาแล้ว
Notice: Function wp_enqueue_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. This notice was triggered by the wpb_togglemenu handle. Please see Debugging in WordPress for more information. (This message was added in version 3.3.0.)
_xxx.com/public_html/wp-includes/functions.php on line 6131
Gemini said
เจอตัวการแล้วครับ! ปัญหาไม่ได้อยู่ที่ Plugin ที่คุณกำลังจะกดปิดโดยตรง แต่มันอยู่ที่ “ไฟล์ระบบของ WordPress (Core Files) เสียหายหรือหายไป” ครับ
ตัวการหลักคือบรรทัดนี้: Fatal error: Failed opening required '.../wp-includes/PHPMailer/SMTP.php'
วิเคราะห์ปัญหา
ระบบพยายามเรียกใช้ไฟล์ SMTP.php (ซึ่งเป็นส่วนหนึ่งของระบบส่งอีเมลใน WordPress) แต่หาไฟล์นี้ไม่เจอ หรือไฟล์นี้เสียหาย ทั้งที่มันเป็นไฟล์พื้นฐานที่ต้องมีในทุกเว็บ WordPress ครับ
วิธีแก้ไข (เรียงตามความเหมาะสม)
1. อัปโหลดไฟล์ที่หายไปกลับคืน (แนะนำที่สุด)
สาเหตุอาจเกิดจากตอนย้ายโฮสต์หรืออัปเดตแล้วไฟล์หลุดไป ให้คุณทำดังนี้:
- ไปดาวน์โหลด WordPress เวอร์ชันที่คุณใช้อยู่ (หรือเวอร์ชันล่าสุด) จาก WordPress.org มาไว้ในคอมฯ
- แตกไฟล์ Zip แล้วเข้าไปที่โฟลเดอร์
wp-includes/PHPMailer/ - หาไฟล์ชื่อ
SMTP.php(และไฟล์อื่นๆ ในโฟลเดอร์นั้น) - ใช้ FTP หรือ File Manager ของโฮสติ้ง อัปโหลดไฟล์เหล่านี้ กลับเข้าไปที่เส้นทาง:
/public_html/wp-includes/PHPMailer/ - เมื่อไฟล์ครบแล้ว ลองกลับไปกด Deactivate ปลั๊กอินดูอีกครั้งครับ
2. กดอัปเดต WordPress ซ้ำ (Re-install Core)
ถ้าคุณยังเข้าหน้า Admin ได้ (ซึ่งคุณบอกว่าเข้าได้) ให้ลองทำแบบนี้ครับ:
- ไปที่เมนู Dashboard (หน้าควบคุม) > Updates (อัปเดต)
- มองหาปุ่มที่เขียนว่า “Re-install version XXX” หรือ “Check Again” แล้วกดติดตั้งซ้ำ
- วิธีนี้จะทำให้ WordPress ไปดึงไฟล์ระบบที่ขาดหายไปกลับมาให้ครบโดยอัตโนมัติ (ข้อมูลโพสต์และรูปภาพไม่หายครับ)
3. ปิดการส่งอีเมลชั่วคราว (ถ้ายังทำข้อ 1-2 ไม่สำเร็จ)
ที่มัน Error ตอน Deactivate เพราะปลั๊กอินหลายตัวพอเราสั่งปิด มันจะพยายามส่งอีเมลแจ้งเตือน Admin หรือทำงานบางอย่างที่เรียกใช้ระบบ Mail
- หากคุณมีปลั๊กอินพวก SMTP (เช่น WP Mail SMTP) ให้ลอง ลบ (Delete) โฟลเดอร์ปลั๊กอินนั้นออกผ่าน FTP ก่อน เพื่อไม่ให้มันไปเรียกไฟล์ที่พังอยู่ครับ
สรุปต้นตอ
ปัญหาคือ ไฟล์ในโฟลเดอร์ wp-includes ของคุณไม่สมบูรณ์ ครับ ส่วนข้อความ Notice อื่นๆ (เรื่อง wpb_togglemenu) เป็นแค่คำเตือนเรื่อง Code เก่าเฉยๆ ไม่ได้ทำให้เว็บล่มเท่ากับตัว Fatal error ของ PHPMailer ครับ
ลองอัปโหลดไฟล์ SMTP.php กลับเข้าไปดูครับ
You said
ผมลบไฟล์ block.json ไม่ได้ อัพไฟล์เข้าไป folder ก็ไม่ได้
ปัญหาอยู่ตรงนี้ครับ
/domains/vir9.com/public_html/wp-includes/PHPMailer/SMTP.php
มีไฟล์เพิ่มมา block.json ใน /SMTP.php เมื่อ 2025/12/23 2:44.:05AM
อาจจะเป็นที่ woocommerce ที่ลงไว้ในบ้าง subdirectory แล้ว เมื่อมีคนซื้อจะส่งบิลมาแล้วอาจจะถูกบล๊อคโดย host
ถ้าไม่ใช่ก็บอกได้นะครับ
Gemini said
ชัดเจนเลยครับ อาการนี้ไม่ใช่เรื่องการส่งบิลของ WooCommerce ธรรมดาแล้ว แต่มันคือสัญญาณของ “การถูกวางมัลแวร์ (Malware) หรือถูกแฮ็ก” ครับ
1. วิเคราะห์ปัญหา (ทำไมถึงลบหรืออัปโหลดไม่ได้?)
การที่มีไฟล์ชื่อ block.json เข้าไปอยู่ในตำแหน่งแปลกๆ อย่าง /wp-includes/PHPMailer/SMTP.php/block.json (หรือในโฟลเดอร์เดียวกัน) และคุณ ไม่สามารถลบหรืออัปโหลดไฟล์ทับได้ เกิดจากสาเหตุหลักๆ ดังนี้ครับ:
- Permissions & Immutable Bit: แฮ็กเกอร์มักจะใช้คำสั่งระดับ Root (ถ้าโฮสต์ป้องกันไม่ดีพอ) เพื่อล็อกไฟล์นั้นไว้ (Immutable) ทำให้แม้แต่เจ้าของเว็บ (Admin) ก็ลบไม่ได้
- Malware Process: มีสคริปต์อันตรายทำงานค้างอยู่ใน Server ที่คอยตรวจสอบและสร้างไฟล์นั้นกลับมาทันที หรือล็อกไฟล์ไว้ไม่ให้ใครแก้ไข
- Storage Quota หรือ Ownership: ไฟล์ถูกสร้างโดย User อื่น (เช่น
www-dataหรือroot) ทำให้ User ของคุณไม่มีสิทธิ์ลบ
2. ทำไมถึงคิดว่าไม่ใช่ WooCommerce?
ปกติ WooCommerce จะส่งอีเมลโดยเรียกใช้ไฟล์ class-phpmailer.php และ SMTP.php ของ WordPress ตามปกติ แต่มันจะไม่มีการสร้างไฟล์ชื่อ block.json ไว้ในโฟลเดอร์ระบบเด็ดขาด ครับ
ไฟล์ block.json ปกติจะมีไว้สำหรับ Gutenberg Blocks (ตัวแก้ไขหน้าเว็บ) และควรอยู่ในโฟลเดอร์ wp-includes/blocks/ หรือใน Plugin/Theme เท่านั้น การที่มันไปโผล่ใน PHPMailer คือความผิดปกติ 100% ครับ
3. วิธีแก้ไขที่ต้องทำทันที
ขั้นตอนที่ 1: แจ้ง Hosting Provider (สำคัญที่สุด)
ในเมื่อคุณลบไฟล์เองไม่ได้ และอัปโหลดไฟล์ทับไม่ได้ แสดงว่า Permissions ระดับ File System มีปัญหา
- สิ่งที่ต้องบอกโฮสต์: “ช่วยตรวจสอบไฟล์ใน
/public_html/wp-includes/PHPMailer/ให้หน่อยครับ มีไฟล์แปลกปลอมชื่อblock.jsonและผมไม่สามารถลบหรืออัปโหลดไฟล์ทับได้ รบกวนช่วย Reset Permission หรือลบไฟล์นี้ให้ทีครับ คาดว่าเว็บอาจถูกฝังมัลแวร์”
ขั้นตอนที่ 2: ใช้ “ไม้ตาย” ลบผ่านตัวจัดการไฟล์ของโฮสต์ (ถ้ายังไม่ทำ)
หากคุณใช้ FTP (เช่น FileZilla) แล้วลบไม่ได้ ให้ลองเข้าผ่าน DirectAdmin / cPanel File Manager โดยตรงครับ บางครั้งตัวจัดการไฟล์บนหน้าเว็บจะมีสิทธิ์สูงกว่า FTP
ขั้นตอนที่ 3: ตรวจสอบไฟล์ wp-config.php และ .htaccess
แฮ็กเกอร์มักจะไปเขียน Code ทิ้งไว้ในไฟล์เหล่านี้เพื่อให้มัลแวร์ทำงานต่อได้
- เช็กดูว่าใน
wp-config.phpมี Code แปลกๆ ที่คุณไม่ได้เขียนเองหรือไม่ - เช็กไฟล์
.htaccessว่ามีการ Redirect ไปเว็บอื่นไหม
4. การป้องกันในอนาคต
หลังจากลบไฟล์เจ้าปัญหาได้และ Deactivate ปลั๊กอินได้แล้ว:
- เปลี่ยนรหัสผ่านทุกอย่าง: ทั้ง WordPress Admin, Hosting Control Panel, และ FTP
- ติดตั้งปลั๊กอินความปลอดภัย: เช่น Wordfence Security เพื่อ Scan หาไฟล์ที่เหลืออยู่
- อัปเดต WordPress และ Plugin ทั้งหมด: (รวมถึง WooCommerce ใน Subdirectory ด้วย) เพราะรูรั่วส่วนใหญ่มักมาจากปลั๊กอินที่ไม่ได้อัปเดตครับ
สรุป: ปัญหานี้เกินมือที่คุณจะแก้ด้วยการกดปุ่มใน WordPress ครับ ต้องให้ Hosting ช่วยลบไฟล์นั้นออกให้ เพราะมันถูกล็อกไว้ในระดับระบบครับ
ต้องการให้ผมช่วยร่างข้อความภาษาอังกฤษหรือภาษาไทยเพื่อส่ง Ticket หาโฮสต์ไหมครับ?
Gemini said
ไฟล์ .htaccess ที่คุณก๊อปปี้มาดู ปกติและสะอาดดีครับ แต่พอย้อนกลับไปที่ปัญหา “ไฟล์ block.json ในโฟลเดอร์ SMTP.php” และ “ลบไม่ได้/อัปโหลดไม่เข้า” นี่คือประเด็นสำคัญที่ต้องจัดการครับ:
วิเคราะห์สถานการณ์ตอนนี้
การที่ .htaccess ปกติ แต่คุณจัดการไฟล์ใน wp-includes ไม่ได้ หมายความว่า:
- มัลแวร์ไม่ได้โจมตีผ่าน .htaccess: แต่มันใช้วิธีฝังตัวในไฟล์ระบบ (Core Files) โดยตรง
- File Permission ถูกล็อก: ไฟล์
block.jsonหรือโฟลเดอร์นั้นอาจถูกเปลี่ยนเจ้าของ (Owner) เป็นrootหรือถูกตั้งค่าimmutable bit(สั่งห้ามลบ/แก้ไข) โดยสคริปต์อันตราย - ความพยายามส่งบิล WooCommerce: หากระบบพยายามส่งเมล แล้วไปเจอไฟล์
SMTP.phpที่พัง (เพราะมีมัลแวร์ไปขวางหรือสร้างโฟลเดอร์ทับ) มันจึงเกิด Critical Error ครับ
สิ่งที่คุณควรทำทันที (Step-by-Step)
1. แจ้ง Hosting ให้ “Force Delete”
ในเมื่อคุณลบผ่านหน้าเว็บหรือ FTP ไม่ได้ คุณต้องส่ง Ticket หาโฮสต์ครับ ก๊อปปี้ข้อความนี้ไปบอกเขาได้เลย:
“ช่วยตรวจสอบและลบไฟล์/โฟลเดอร์แปลกปลอมที่
/public_html/wp-includes/PHPMailer/block.jsonให้หน่อยครับ ผมไม่สามารถลบเองได้เนื่องจากติด Permission (File is locked/Protected) คาดว่าน่าจะเป็นมัลแวร์ และรบกวนช่วยเช็กไฟล์ SMTP.php ในโฟลเดอร์เดียวกันด้วยว่าเสียหายหรือไม่”
2. ตรวจสอบไฟล์ wp-config.php (อีกครั้ง)
นอกจากเรื่อง WP_DEBUG ที่เราคุยกันตอนแรก ให้เช็กที่ “บรรทัดแรกสุด” ของไฟล์ wp-config.php ว่ามี Code แปลกๆ หรือการ include ไฟล์ชื่อประหลาดๆ (เช่น wp-settings-bak.php หรือชื่อสุ่ม) อยู่ก่อนหน้า <?php หรือไม่? ถ้ามี นั่นคือตัวสั่งการมัลแวร์ครับ
3. ติดตั้งปลั๊กอินตรวจสอบ (ถ้ายังเข้าหลังบ้านได้)
ถ้ายังเข้าหน้า Admin ได้ แนะนำให้ลง Wordfence Security แล้วกด “Scan” ครับ
- มันจะฟ้องทันทีว่าไฟล์ใน
wp-includesตัวไหน “ไม่ตรงกับต้นฉบับของ WordPress” - มันจะมีปุ่ม “Repair” เพื่อดึงไฟล์ที่ถูกต้องจาก WordPress.org มาทับไฟล์ที่พังให้โดยอัตโนมัติ
ทำไมถึงมีไฟล์ในปี 2025?
คุณสังเกตเห็นวันที่ 2025/12/23 ซึ่งมันคือ “อนาคต” (ถ้าตอนนี้เรายังอยู่ปี 2024 หรือต้นปี 2025)
- แฮ็กเกอร์มักจะตั้งวันที่ไฟล์ (Timestamp) ให้เป็นอนาคตหรืออดีตไกลๆ เพื่อ “หลบการตรวจจับ” จากการจัดเรียงไฟล์ตามเวลา (Sort by date) ทำให้คุณหาไฟล์ที่เพิ่งโดนแก้ไม่เจอ
สรุป: อย่าเพิ่งตกใจเรื่อง WooCommerce ครับ ปัญหาตอนนี้คือ File System ถูกล็อกโดย Malware ให้โฮสต์ปลดล็อกและลบไฟล์นั้นให้ก่อน แล้วเว็บจะกลับมา Deactivate ปลั๊กอินและทำงานได้ตามปกติครับ
มีอะไรคืบหน้าหลังจากคุยกับโฮสต์ บอกผมได้นะ! สู้ๆ ครับ
You said
ผมมีอีกเว็บ เปิดหน้าไม่ได้ ใส่ code ใน wp-config อัพขึ้นโฮส ขึ้นแบบนี้ครับ
Warning: require(/_xxx.com/public_html/test/wp-includes/class-wp-dependencies.php): failed to open stream: Success in /home/jongjare/domains/vir9.com/public_html/test/wp-includes/script-loader.php on line 23
อาการนี้เหมือนกับเว็บแรกเลยครับ คือ “ไฟล์ระบบ (Core Files) หายหรือเสียหาย” แต่คราวนี้เป็นที่โฟลเดอร์ /test/ และตัวที่พังคือไฟล์ที่ใช้โหลด Script พื้นฐานของเว็บ
วิเคราะห์ Error
- Fatal error: ระบบหาไฟล์
class-wp-dependencies.phpไม่เจอ (หรือมีไฟล์อยู่แต่เปิดไม่ได้) ทำให้ WordPress หยุดทำงานทันที (หน้าขาว/เปิดไม่ได้) - Success in…: ข้อความนี้ตลกตรงที่มันบอกว่า “Success” แต่จริงๆ คือมันล้มเหลวในการเปิดไฟล์ มักเกิดจาก Permission ของไฟล์ในโฮสต์ผิดเพี้ยน หรือตัวไฟล์เองกลายเป็น 0 KB (ไฟล์ว่าง)
วิธีแก้ไข (เนื่องจากเป็นเว็บในโฟลเดอร์ /test/)
1. อัปโหลดไฟล์ที่หายไป (วิธีที่เร็วที่สุด)
ในเมื่อเรารู้ชื่อไฟล์ที่เสียแล้ว ให้คุณทำดังนี้ครับ:
- เปิดโปรแกรม FTP หรือ File Manager
- ไปที่เส้นทาง:
/public_html/test/wp-includes/ - ตรวจสอบว่ามีไฟล์ชื่อ
class-wp-dependencies.phpหรือไม่? (ถ้ามี ขนาดไฟล์เป็น 0 หรือเปล่า?) - ไปดาวน์โหลด WordPress (เวอร์ชันเดียวกับที่ใช้) จากคอมพิวเตอร์ของคุณ
- ก๊อปปี้ไฟล์
class-wp-dependencies.phpจากคอมพิวเตอร์ อัปโหลดเข้าไปทับในโฮสต์ครับ
2. อัปโหลดโฟลเดอร์ wp-includes ใหม่ทั้งหมด
ถ้าไฟล์หนึ่งหายไป มีโอกาสสูงที่ไฟล์อื่นจะหายตาม (เหมือนเคส SMTP.php ของเว็บแรก)
- แนะนำให้ อัปโหลดโฟลเดอร์
wp-includesจาก WordPress ตัวใหม่ ทับลงไปใน/test/wp-includes/ทั้งหมดเลยครับ (ไม่ต้องกลัว ข้อมูลไม่หาย เพราะข้อมูลอยู่ใน Database และโฟลเดอร์wp-content)
ข้อสังเกตเพิ่มเติม (เรื่องความปลอดภัย)
การที่เว็บของคุณ (ทั้งเว็บหลักและเว็บทดสอบในโฟลเดอร์ /test/) เกิดปัญหาไฟล์ระบบหายพร้อมๆ กันแบบนี้ ไม่ใช่เรื่องบังเอิญครับ
- โดนลบโดย Antivirus ของโฮสต์: บางครั้งโฮสต์จะรันสแกนมัลแวร์ แล้วถ้ามัลแวร์ไปเกาะไฟล์ไหน โฮสต์จะลบไฟล์นั้นทิ้งทันที ทำให้เว็บล่ม
- มัลแวร์ตัวเดียวกัน: มัลแวร์ที่ฝังอยู่ใน
vir9.comอาจจะลุกลามเข้ามาในโฟลเดอร์/test/ด้วย เพราะมันอยู่ใน Account เดียวกัน (User เดียวกัน)
สิ่งที่ควรทำตอนนี้:
- เช็กไฟล์
class-wp-dependencies.phpในโฮสต์ก่อนครับ ว่าลบได้ไหม หรืออัปโหลดทับได้ไหม? - ถ้าอัปโหลดทับไม่ได้เหมือนเว็บแรก: แสดงว่าโดนล็อก Permission เหมือนกัน ต้องแจ้งโฮสต์ให้ปลดล็อกและลบไฟล์เสียให้ครับ
สรุปคือ: ทั้งสองเว็บของคุณกำลังเจอ “ไฟล์ระบบถูกทำลาย” ครับ การอัปโหลดไฟล์ใหม่เข้าไปทับคือทางแก้ แต่ถ้าโฮสต์ไม่ยอมให้ทับ ต้องจัดการเรื่อง Permission ก่อนครับ
จะให้ผมช่วยตรวจสอบไฟล์ไหนเพิ่มอีกไหมครับ?
You said
ผมจะลบมัน ต้องbavkup ไฟล์อะไรบ้าง ตอนนี้เข้า dashboard ไม่ได้ แต่เข้า hostได้
Gemini said
หากคุณเข้าหน้า Dashboard (หลังบ้าน) ไม่ได้ แต่ยังเข้า Hosting (ผ่าน File Manager หรือ FTP) และจัดการ Database ได้ คุณสามารถ Backup เว็บไซต์ด้วยตัวเองเพื่อความปลอดภัยก่อนจะลบหรือล้างเครื่องใหม่ โดยต้องเก็บ 2 ส่วนหลักๆ ดังนี้ครับ:
1. ส่วนของไฟล์ (Files)
ให้เข้าไปที่โฟลเดอร์ที่ติดตั้ง WordPress (เช่น /public_html/ หรือ /test/) แล้ว Backup สิ่งเหล่านี้:
- โฟลเดอร์
wp-content(สำคัญที่สุด):uploads: รูปภาพและไฟล์สื่อทั้งหมดที่คุณเคยอัปโหลดplugins: รายชื่อปลั๊กอิน (ถ้าคิดว่าปลั๊กอินติดมัลแวร์ ไม่ต้องเอากลับมาก็ได้ แต่เก็บรายชื่อไว้ว่าเคยใช้อะไรบ้าง)themes: ธีมที่คุณใช้งาน (ถ้ามีการแก้ไข Code ในธีมต้องเก็บไว้)
- ไฟล์
wp-config.php: เก็บไว้ดูค่าการเชื่อมต่อ Database (DB Name, User, Password) และ Key ต่างๆ - ไฟล์
.htaccess: เก็บไว้ดูการตั้งค่าการเชื่อมต่อ (ถ้ามีการตั้งค่าพิเศษไว้)
2. ส่วนของฐานข้อมูล (Database) – สำคัญมาก
ข้อมูลโพสต์, หน้าเนื้อหา (Pages), รหัสผ่านผู้ใช้ และการตั้งค่าต่างๆ อยู่ในนี้ครับ
- เข้าที่ Hosting Control Panel (เช่น DirectAdmin, cPanel)
- หาเมนู phpMyAdmin
- เลือกชื่อ Database ของเว็บนั้น (ดูชื่อได้จากไฟล์
wp-config.php) - กดเมนู Export และเลือกวิธีแบบ Quick แล้วกด Go เพื่อดาวน์โหลดไฟล์
.sqlมาเก็บไว้ในคอมพิวเตอร์
วิธีการลบและล้างมัลแวร์ที่แนะนำ
ในเมื่อคุณเจอปัญหามัลแวร์ล็อกไฟล์ แนะนำให้ทำตามขั้นตอนนี้หลังจาก Backup เสร็จแล้วครับ:
- ลบไฟล์ทิ้งทั้งหมด: ยกเว้นโฟลเดอร์
wp-content/uploads(และต้องเช็กข้างใน uploads ด้วยว่าไม่มีไฟล์.phpแปลกปลอม) - ติดตั้ง WordPress ใหม่ (Fresh Install): * ดาวน์โหลด WordPress จาก wordpress.org
- อัปโหลดไฟล์ใหม่ขึ้นไปแทนที่ทั้งหมด (ยกเว้น
wp-contentที่เราจะเอาของเดิมเฉพาะรูปภาพมาใส่)
- อัปโหลดไฟล์ใหม่ขึ้นไปแทนที่ทั้งหมด (ยกเว้น
- ใช้ Database เดิม: เชื่อมต่อ
wp-config.phpเข้ากับ Database ที่เรา Backup ไว้ - ติดตั้ง Plugins/Themes ใหม่จากแหล่งที่มาโดยตรง: ห้าม ก๊อปปี้โฟลเดอร์ปลั๊กอินเดิมที่ติดมัลแวร์กลับมา ให้ใช้วิธีดาวน์โหลดใหม่จาก Store ของ WordPress เท่านั้น
ข้อควรระวัง
- อย่า Backup ไฟล์ระบบ: พวกไฟล์ใน
wp-includesหรือwp-adminห้ามเก็บไว้ เพราะตอนนี้เราค่อนข้างมั่นใจว่าไฟล์พวกนี้ถูกมัลแวร์แก้ไขไปแล้ว - เช็กไฟล์รูปภาพ: มัลแวร์บางตัวชอบไปแอบอยู่ใน
wp-content/uploadsโดยปลอมตัวเป็นไฟล์ชื่อindex.phpหรือไฟล์ชื่อประหลาดๆ ให้ลบออกให้หมด ให้เหลือแต่ไฟล์รูปภาพ (jpg, png, gif) เท่านั้น
ถ้าคุณ Backup 2 ส่วนนี้ (wp-content/uploads + Database .sql) ไว้ได้ เว็บของคุณจะกลับมาได้ 100% แม้จะลบไฟล์ทิ้งทั้งหมดครับ
You said
ผมลง wordpress ใหม่ เช่น เช่น vir9.com/T2 (เดิมvir9.com/test ซึ่งจะลบไฟล์ทั้งหมด แต่ไม่ได้ลบ database ) ผมเอา wp-config.php ของ vir9.com/test อัพขึ้นแทนอันใหม่ vir9.com/T2
คำถาม : มันจะเชื่อม database เดิมให้เลยไหม
Gemini said
คำตอบคือ เชื่อมให้ทันทีครับ แต่มีข้อควรระวังสำคัญ 2-3 อย่างเพื่อให้เว็บใช้งานได้ปกติครับ:
1. การเชื่อมต่อ Database
เมื่อคุณเอาไฟล์ wp-config.php เดิมไปใส่ในโฟลเดอร์ใหม่ (/T2) WordPress จะวิ่งไปอ่านชื่อ Database, User และ Password ชุดเดิม ทำให้ดึงข้อมูลโพสต์และเนื้อหาเดิมมาแสดงได้ทันที
2. สิ่งที่ต้องทำต่อ (สำคัญมาก)
เนื่องจากคุณเปลี่ยนโฟลเดอร์จาก /test เป็น /T2 เว็บจะเกิดอาการ “หน้าขาว” หรือ “Link พัง” เพราะใน Database ยังจำค่าเก่าว่าเป็น /test อยู่ คุณต้องเข้าไปแก้ไขดังนี้ครับ:
- วิธีที่ 1: แก้ผ่าน wp-config.php (เร็วที่สุด) ให้เพิ่ม Code 2 บรรทัดนี้ลงไปในไฟล์
wp-config.php(ต่อจากบรรทัด<?phpได้เลย) เพื่อบังคับให้เว็บรู้ที่อยู่ใหม่:PHPdefine( 'WP_HOME', 'https://vir9.com/T2' ); define( 'WP_SITEURL', 'https://vir9.com/T2' ); - วิธีที่ 2: แก้ใน Database (ถาวร) เข้า phpMyAdmin > ไปที่ตาราง
wp_options(หรือชื่อ prefix อื่นที่คุณตั้งไว้)- แก้ไขแถวที่ชื่อว่า
siteurlจากhttps://vir9.com/testให้เป็นhttps://vir9.com/T2 - แก้ไขแถวที่ชื่อว่า
homeให้เป็นที่อยู่ใหม่เช่นกัน
- แก้ไขแถวที่ชื่อว่า
3. ข้อควรระวังเรื่องมัลแวร์
ในเมื่อคุณสงสัยว่าเว็บเดิมมีมัลแวร์ การนำ wp-config.php ตัวเดิมมาใช้ ต้องตรวจสอบข้างในไฟล์ให้ดีก่อนครับ
- เปิดไฟล์
wp-config.phpดูด้วย Notepad หรือ Editor - เช็กว่า “ด้านบนสุด” (ก่อนบรรทัด
<?php) หรือ “ด้านล่างสุด” มีโค้ดแปลกๆ ที่เป็นตัวอักษรยึกยือยาวๆ หรือไม่ - ถ้าไฟล์ดูสะอาด (มีแค่ค่า DB_NAME, DB_USER, DB_PASSWORD และ Salt keys) ก็ปลอดภัยครับ
4. เรื่องรูปภาพ
อย่าลืมว่าถึงแม้ Database จะเชื่อมกันแล้ว แต่ รูปภาพในโพสต์จะไม่ขึ้น จนกว่าคุณจะก๊อปปี้โฟลเดอร์ wp-content/uploads จากที่เก่ามาไว้ที่ใหม่ด้วยนะครับ
สรุป: เชื่อมได้แน่นอนครับ แค่ต้องไปอัปเดต URL ของเว็บใน Database หรือ wp-config.php ให้เป็นโฟลเดอร์ /T2 เว็บถึงจะเปิดขึ้นครับ!
You said
แล้วมันจะต้องใช้ user/pw ของ test หรือ T2 ละ
Gemini said
คำตอบคือ ใช้ Username และ Password ของเว็บเดิม (test) ครับ
เพราะเมื่อคุณนำ wp-config.php ของเก่ามาใช้ และมันเชื่อมต่อไปยัง Database ก้อนเดิม ข้อมูลผู้ใช้งานทั้งหมด (รวมถึงรหัสผ่าน) จะถูกดึงมาจากก้อนข้อมูลเก่านั่นเองครับ
สรุปสถานะหลังจากที่คุณย้ายไฟล์
- Username / Password: ใช้ของเดิมที่เคยเข้าเว็บ
/test - ข้อมูลโพสต์ / เพจ: เหมือนเดิมทุกประการ
- การตั้งค่าปลั๊กอิน: เหมือนเดิม (แต่คุณต้องติดตั้งตัวไฟล์ปลั๊กอินลงใน
/T2ให้ครบด้วย)
ข้อควรระวัง: ถ้า Login ไม่ได้ หรือ “วนลูป” กลับมาหน้าเดิม
หากใส่รหัสผ่านถูกแล้วแต่ระบบเด้งกลับมาที่หน้า Login หรือบอกว่า Session หมดอายุ มักจะเกิดจาก URL ใน Database ยังเป็นค่าเก่า ครับ
วิธีแก้ไข: ให้เพิ่มโค้ดนี้ลงในไฟล์ wp-config.php (วางไว้ใต้บรรทัด <?php) เพื่อบังคับให้ระบบจดจำที่อยู่ใหม่ชั่วคราว:
PHP
define( 'WP_HOME', 'https://vir9.com/T2' );
define( 'WP_SITEURL', 'https://vir9.com/T2' );
(ถ้าเว็บของคุณมี https อย่าลืมใส่ให้ครบนะครับ)
ลำดับการทำงานที่แนะนำตอนนี้:
- ย้ายไฟล์: เอาไฟล์ WordPress ชุดใหม่ลงในโฟลเดอร์
/T2 - เชื่อม Database: อัปโหลด
wp-config.php(ตัวเก่า) เข้าไป - แก้ URL: ใส่ Code
define(ด้านบน) เพื่อให้ระบบรู้ว่าตอนนี้ย้ายบ้านมาอยู่ที่/T2แล้ว - Login: เข้าหน้า
vir9.com/T2/wp-adminด้วย User/PW เดิม - Setting: ไปที่เมนู Settings > Permalinks แล้วกดปุ่ม Save Changes 1 ครั้ง เพื่อให้ไฟล์
.htaccessอัปเดตเส้นทางใหม่
ถ้าเข้าได้แล้ว อย่าลืมรีบเปลี่ยนรหัสผ่านใหม่ยกชุด และเช็กดูว่ามี User แปลกปลอมแอบสร้างไว้ในระบบบ้างหรือเปล่านะครับ เพราะเราเพิ่งโดนมัลแวร์มา
มีปัญหาตอนกด Login หรือเปล่าครับ? บอกผมได้นะ
You said
ผมลืมเก็บ wp-config.php แต่ database อยู่ครบ รู้ว่าชื่อ database อะไร และ มี user / pw ด้วย
Gemini said
ไม่มีปัญหาครับ ในเมื่อคุณมี ชื่อ Database, Username, และ Password อยู่ในมือแล้ว คุณสามารถสร้างไฟล์ wp-config.php ใหม่ขึ้นมาเชื่อมต่อได้เลยครับ
นี่คือวิธีทำครับ:
วิธีที่ 1: ใช้ไฟล์ตัวอย่าง wp-config-sample.php (แนะนำ)
- ในโฟลเดอร์
/T2จะมีไฟล์ที่ชื่อว่าwp-config-sample.phpให้คุณเปลี่ยนชื่อไฟล์นั้นเป็นwp-config.php - เปิดไฟล์ขึ้นมาแก้ไข แล้วหาบรรทัดเหล่านี้เพื่อกรอกข้อมูลที่คุณมี:
PHP
// ** กรอกชื่อ Database เดิมที่นี่ ** //
define( 'DB_NAME', 'ชื่อ_database_ของคุณ' ); ดูใน hosting control panel
// ** กรอก Username ของ Database ** // ส่วนใหญ่เหมือนข้างบน
define( 'DB_USER', 'user_ของคุณ' );
// ** กรอก Password ของ Database ** // เข้าไป edit ใน database user ของ แต่ละ database
define( 'DB_PASSWORD', 'รหัสผ่าน_ของคุณ' );
// ** ปกติจะเป็น localhost ถ้าโฮสต์ไม่ได้แจ้งเป็นอย่างอื่น ** // ไม่ต้องแก้
define( 'DB_HOST', 'localhost' );
วิธีที่ 2: ใช้หน้าจอต้อนรับของ WordPress
ถ้าคุณอัปโหลดไฟล์ WordPress ใหม่ลงในโฟลเดอร์ /T2 แล้วยังไม่มีไฟล์ wp-config.php:
- เข้าไปที่ URL:
https://vir9.com/T2/ - ระบบจะขึ้นหน้าจอให้เลือกภาษา และปุ่ม “Let’s go!”
- ให้คุณกรอกข้อมูล Database, User, Password ที่คุณมีลงในช่องที่ระบบเตรียมไว้ให้
- สำคัญ: ตรงช่อง Table Prefix ถ้าของเดิมคุณเคยเปลี่ยนไว้ (ไม่ใช่
wp_) ต้องแก้ให้ตรงกับของเดิมใน Database ด้วยครับ (เช็กใน phpMyAdmin ว่าชื่อตารางนำหน้าด้วยอะไร) - กด Submit ระบบจะสร้างไฟล์ให้เองครับ
สิ่งที่ “ต้องทำเพิ่ม” เพราะคุณไม่มีไฟล์เดิม
1. ใส่ Authentication Unique Keys (เพื่อความปลอดภัย)
ในไฟล์เดิมจะมีชุดรหัสสุ่ม (Salt Keys) ซึ่งตอนนี้หายไปแล้ว ให้คุณไปที่ https://api.wordpress.org/secret-key/1.1/salt/ แล้วก๊อปปี้ Code ทั้งชุดมาวางทับใน wp-config.php ตรงส่วนที่เขียนว่า AUTH_KEY, SECURE_AUTH_KEY ฯลฯ
2. บังคับ URL ใหม่ (กันหน้าขาว)
อย่าลืมเพิ่ม 2 บรรทัดนี้ใน wp-config.php (ใต้บรรทัด <?php) เพื่อให้มันวิ่งไปที่โฟลเดอร์ /T2 ได้ถูกต้องครับ:
PHP
define( 'WP_HOME', 'https://vir9.com/T2' );
define( 'WP_SITEURL', 'https://vir9.com/T2' );
สรุป
- User/PW สำหรับเข้าหลังบ้าน: ใช้ของเดิม (เพราะมันอยู่ใน Database)
- ข้อมูล Database: ใช้ชุดที่คุณมีอยู่เพื่อเชื่อมต่อ
ตอนนี้ติดขั้นตอนไหนไหมครับ? เช่น กรอกข้อมูลแล้วระบบบอกว่า “Error establishing a database connection” หรือเปล่า?
You said
วิธี1
// ** กรอก Password ของ Database ** //
define( ‘DB_PASSWORD’, ‘รหัสผ่าน_ของคุณ’ );
คือ อันไหน
Gemini said
คำถามนี้สำคัญมากครับ เพราะหลายคนมักสับสนระหว่าง รหัสผ่านของ WordPress Admin กับ รหัสผ่านของ Database
DB_PASSWORD คือ รหัสผ่านสำหรับเชื่อมต่อฐานข้อมูล (Database User Password) ครับ ไม่ใช่รหัสที่คุณใช้ Login เข้าหน้าเว็บ WordPress
คุณสามารถหาหรือตรวจสอบรหัสนั้นได้จาก 2 แหล่งนี้ครับ:
1. ดูใน Hosting Control Panel (DirectAdmin / cPanel)
หากคุณลืมรหัสผ่านนี้ไปแล้ว ให้ทำตามนี้ครับ:
- เข้าไปที่ MySQL Management (หรือ MySQL Databases)
- ดูที่รายชื่อ Database Users
- คุณจะเห็น User ที่เชื่อมกับ Database ของคุณ
- ถ้าจำรหัสไม่ได้: ให้เลือก “Change Password” หรือ “Reset Password” ของ User นั้น แล้วตั้งรหัสใหม่
- จากนั้นก็นำรหัสที่เพิ่งตั้งใหม่นี้มาใส่ใน
define( 'DB_PASSWORD', 'รหัสที่ตั้งใหม่' );
2. ดูจากเว็บอื่นๆ ในโฮสต์เดียวกัน (ถ้ามี)
หากคุณมีเว็บอื่นในโฮสต์เดียวกันที่ใช้ User ตัวเดียวกัน คุณสามารถไปเปิดดูไฟล์ wp-config.php ของเว็บนั้นเพื่อก๊อปปี้รหัสมาใส่ได้เลยครับ
ข้อสังเกต:
- DB_USER: มักจะเป็นชื่อที่มีชื่อผู้ใช้โฮสต์นำหน้า เช่น
jongjare_test - DB_PASSWORD: มักจะเป็นตัวอักษรผสมตัวเลขยาวๆ (ที่คุณหรือโฮสต์ตั้งไว้ตอนสร้าง Database)
สรุปสั้นๆ:
รหัสนี้คือรหัสที่คุณใช้ตอนสร้าง Database ในหน้าโฮสต์ครับ ถ้าจำไม่ได้ ให้กดเปลี่ยนใหม่ในหน้า MySQL Management ของโฮสต์ได้เลย (ไม่ต้องกลัว ข้อมูลไม่หาย แค่ต้องเอารหัสใหม่มาเขียนลงใน wp-config.php ให้ตรงกันเท่านั้นครับ)
ลองหาในเมนู MySQL ของโฮสต์ดูครับ เจอไหมครับ?
You said
ถ้าเข้าหน้าเว็บจะขาว
ถ้าเข้า dashboard จะให้กด update data base เรียบร้อย
แต่ ผมลืม pw สามารถกด forgot ได้ไหม
Gemini said
ไปได้สวยแล้วครับ! การที่ระบบให้คุณกด “Update Database” ได้ แสดงว่า wp-config.php เชื่อมต่อสำเร็จ 100% แล้วครับ ส่วนที่หน้าเว็บยังขาวอยู่ อาจเป็นเพราะเรื่อง URL หรือ Theme ซึ่งเราแก้ทีหลังได้
ส่วนเรื่องรหัสผ่าน กด Forgot Password ได้ครับ แต่ต้องมั่นใจเรื่อง “อีเมล” ดังนี้:
1. ถ้าคุณจำ “อีเมล” ที่ผูกกับ Admin ได้
- กดปุ่ม “Lost your password?” (ลืมรหัสผ่าน) ในหน้า Login ได้เลย
- ระบบจะส่งลิงก์รีเซ็ตรหัสไปให้ในอีเมลนั้น
- ข้อควรระวัง: เนื่องจากตอนนี้ระบบอีเมลของเว็บคุณอาจจะมีปัญหา (จากที่เราคุยกันเรื่องไฟล์
SMTP.phpหายในตอนแรก) อีเมลอาจจะส่งไม่ไป หรือไปตกใน Junk Mail ครับ
2. ถ้ากด Forgot แล้วอีเมลไม่มา (วิธีแก้ผ่าน Database – ชัวร์ที่สุด)
ในเมื่อคุณเข้า Hosting ได้ ผมแนะนำให้ เปลี่ยนรหัสผ่านผ่าน phpMyAdmin ครับ วิธีนี้ไม่ต้องรออีเมลและเข้าได้แน่นอน:
- เข้า phpMyAdmin ใน Hosting
- เลือก Database ของคุณ แล้วไปที่ตารางที่ชื่อว่า
wp_users - กดปุ่ม Edit (แก้ไข) ที่แถวของ User ที่คุณต้องการ (ปกติคือ ID 1)
- มองหาคอลัมน์ที่ชื่อว่า
user_pass - ในช่อง Function ให้เลือกเป็น
MD5(สำคัญมาก!) - ในช่อง Value ให้ลบของเก่าออก แล้ว พิมพ์รหัสผ่านใหม่ ที่คุณต้องการลงไปตรงๆ เลย
- กด Go ที่ด้านล่าง
คราวนี้คุณก็ใช้รหัสที่เพิ่งพิมพ์ไป Login เข้าหน้า Dashboard ได้ทันทีครับ
3. ทำไมหน้าเว็บยังขาว? (หลังจาก Login ได้แล้ว)
หลังจากเข้าหลังบ้านได้แล้ว ให้รีบเช็ก 2 จุดนี้เพื่อให้หน้าเว็บหายขาว:
- Settings > General: เช็กว่า WordPress Address และ Site Address เป็น
https://vir9.com/T2หรือยัง - Appearance > Themes: ดูว่ามี Theme หลักถูกเลือกใช้งานอยู่หรือไม่ (บางทีพอย้ายที่แล้วมันหาไฟล์ Theme ไม่เจอ)
- Permalinks: ไปที่ Settings > Permalinks แล้วกด Save Changes เพื่อล้างค่า
.htaccess
ลองเปลี่ยนรหัสผ่านใน phpMyAdmin ดูครับ วิธีนี้ใช้เวลาไม่ถึง 1 นาทีและเข้าได้แน่นอน!
เมื่อเข้าได้แล้ว อยากให้ผมช่วยดูวิธีล้างไฟล์มัลแวร์ที่อาจจะหลงเหลืออยู่ในฐานข้อมูลต่อไหมครับ?
ถ้าเข้าหลังบ้าน (Dashboard) ได้แล้ว ขั้นตอนต่อไปที่ผมแนะนำให้ทำทันทีเพื่อความปลอดภัยคือ:
- เช็กรายชื่อ User: ไปที่เมนู Users (ผู้ใช้) ดูว่ามีชื่อแปลกปลอมที่เราไม่ได้สร้างเองโผล่มาไหม ถ้ามีให้ ลบทิ้งทันที ครับ
- ตั้งค่า Permalink: ไปที่ Settings (การตั้งค่า) > Permalinks (ลิงก์ถาวร) แล้วกดปุ่ม Save Changes 1-2 ครั้ง เพื่อให้ระบบสร้างไฟล์
.htaccessใหม่และแก้ปัญหาหน้าเว็บขาว/ลิงก์เสีย - ลบไฟล์ติดตั้ง: ถ้าคุณสร้างโฟลเดอร์
/T2ด้วยการก๊อปปี้ไฟล์ใหม่ขึ้นไป อย่าลืมลบไฟล์พวกwp-config-sample.phpหรือไฟล์.zipที่ค้างอยู่ในโฮสต์ออกด้วยนะครับ - ติดตั้ง Plugin สำคัญ: แนะนำให้ลง Wordfence หรือ Sucuri แล้วสั่ง Scan ทันที เพราะเราใช้ Database เดิม ซึ่งมัลแวร์อาจจะเคยฝัง Code บางอย่างไว้ในตารางข้อมูล (เช่น ใน
wp_options)
ตอนนี้หน้าเว็บหายขาวหรือยังครับ? ถ้ายังขาวอยู่ ลองไปที่เมนู Appearance (รูปแบบเว็บ) > Themes แล้วลองกด Activate Theme อื่น (เช่น Twenty Twenty-Four)