บันทึกงานเซิร์ฟเวอร์จริง ที่ลงมือทำเอง แล้วเขียนให้คนอื่นใช้ต่อได้
สัปดาห์นี้
ดูทั้งหมด
ช่องโหว่ WordPress core ตอนอัปเดต (CVE-2026-119977) ถูกยิงจริงแล้ว
CVE-2026-119977 เป็นช่องโหว่ race condition ในขั้นอัปเดต WordPress core ที่ CISA ยืนยันว่าถูกโจมตีจริงแล้ว กระทบรุ่น 4.7 ถึง 7.1.3 แก้แล้วใน 7.1.4 และรุ่น backport ทุกสาย บันทึกนี้สรุประดับความรุนแรง วิธีปิดโฟลเดอร์ wp-content/upgrade ก่อนอัปเดต วิธีอัปเดตให้ครบทุกเว็บ และวิธีเช็กว่าโดนไปแล้วหรือยัง
อัปเดตความปลอดภัยล่าสุด
ดูทั้งหมด ->เริ่มต้นที่นี่
ค่อย ๆ เรียนรู้จากงานจริงบทความล่าสุด
ดูทั้งหมด →
เปิด opcache.jit แล้วไม่ได้ผล เพราะ ionCube ทำให้ PHP ปิด JIT เอง
ตั้ง opcache.jit=tracing กับ jit_buffer_size ครบแล้ว แต่ PHP ปิด JIT ทิ้งเองเพราะมี ionCube Loader โหลดอยู่ บันทึกวิธีพิสูจน์ในคำขอจริงของ FPM, ถอด loader อย่างปลอดภัย, ตัวแก้ให้เองเมื่อ DirectAdmin build ทับ และตัวเลขที่ควรคาดหวังจริงสำหรับ Laravel

origin รับ 80/443 เฉพาะ CDN กับบอทที่ยืนยันได้ อัปเดต set แบบอะตอมมิก
ปิด 80/443 ของ VPS หน้าเว็บให้เหลือเฉพาะช่วง IP ของ CDN กับบอทค้นหาที่มีรายการทางการ ด้วย nft set แบบ interval ที่อัปเดตรายวันใน transaction เดียว พร้อมด่านตรวจแหล่งข้อมูลและสำเนาล่าสุดที่ดี เผื่อแหล่งไหนล้มหรือส่งของแปลกมา

user 9 รายไม่เคยถูก backup เลย เพราะรายชื่อใน cron ไม่เคยถูกแก้
backup ของ DirectAdmin รันครบทุกคืนและ health check ผ่านตลอด แต่ user ที่สร้างหลังวันที่แก้ไฟล์ cron ครั้งสุดท้าย 9 รายไม่อยู่ในรายชื่อเลย พร้อมสคริปต์ audit เทียบ user จริงกับ select ใน backup_crons.list การจัดกลุ่มใหม่แบบ greedy และราคาที่ต้องจ่ายเป็นจำนวน restore point

เล่น 9 stem พร้อมกันในเบราว์เซอร์ นาฬิกาเดียว ไม่เพี้ยนตอน seek
เปิดไฟล์เสียง 9 สเต็มด้วยแท็ก audio แยกกันแล้วเสียงเหลื่อมและเพี้ยนตอน seek วิธีที่ใช้คือ decode เป็น AudioBuffer แล้วสั่งทุก BufferSource start(origin, offset) บน AudioContext นาฬิกาเดียว พร้อมตัวเลขหน่วยความจำและเซิร์ฟเวอร์ static ที่รองรับ HTTP Range

Omada API ตอบ Success แต่ค่าไม่เปลี่ยน: ฟิลด์ลับของ SSID/LAN/forward
PATCH ไปที่ Omada controller แล้วได้ errorCode 0 Success แต่ device type ของ SSID ไม่เปลี่ยนเลย พร้อมตารางฟิลด์ที่เดาไม่ได้ของ LAN, DHCP reservation และ port forward กับวิธีลบสร้าง SSID ใหม่โดยไม่ตัดกิ่งที่ตัวเองนั่งอยู่

สคริปต์ Python เปิด terminal ซ้อนอีกตัว เพราะ initialize(path=) ไม่ใช่ attach
สคริปต์เก็บข้อมูลที่เรียก initialize(path=) ของ MT5 Python API ไม่ได้แค่ต่อเข้า terminal ที่เปิดอยู่ ถ้าไม่มีตัวไหนรัน มันสตาร์ตตัวใหม่ให้เอง แล้วได้ terminal ซ้อนที่แย่งโฟลเดอร์ข้อมูลกับบัญชีเดียวกัน บทความนี้เล่าวิธีทำโหมด attach-only การปักบัญชีตอนเริ่ม และวิธีจับ session ที่ตายเงียบหลัง terminal restart

เปลี่ยนไฟร์วอลล์ผ่าน SSH แล้วล็อกตัวเอง: rollback แบบ flush คือกับดัก
สคริปต์ push ไฟร์วอลล์ nftables ไปยัง VPS ผ่าน SSH มี timer ย้อนกลับ 180 วินาทีเผื่อพลาด แต่รุ่นแรกย้อนด้วย nft flush ruleset ซึ่งถ้าถูกใช้จะทิ้งเครื่องไว้โดยไม่มีไฟร์วอลล์เลยตอนที่ล็อกตัวเองอยู่พอดี ผมแก้เป็นคืนกฎเดิม และให้เปิด SSH session ใหม่เป็นเงื่อนไขก่อนยกเลิก timer

แก้ quota ผ่าน DA API แล้วสิทธิ์ redis กับ login key หายเงียบ ๆ
CMD_API_MODIFY_USER แบบ customize ถือว่าสวิตช์ที่ไม่ส่งไปคือปิด และ SHOW_USER_CONFIG ก็ไม่คืนสวิตช์บางตัวกลับมา เลยทำให้แก้ quota แล้ว redis, login keys และ suspend_at_limit ถูกปิดเงียบ ๆ บันทึกขั้นตอนที่ปลอดภัยพร้อม diff user.conf และ repquota

process ลูกค้างเพราะไม่มีใครอ่าน stderr และตายเพราะคนอ่านปิดไปแล้ว
เซิร์ฟเวอร์แบบ stdio ที่เคยผ่าน smoke test 9/9 ค้างนิ่งหลังเพิ่ม debug log ลง stderr บรรทัดละ 4 KB เพราะตัวเรียกเปิดท่อไว้แต่ไม่เคยอ่าน อีกด้านหนึ่ง process ลูกที่ต้องรันต่อหลังหน้าจอปิดจะพังทุกครั้งที่พิมพ์ ถ้า stdout ของมันเป็น pipe ที่ปลายอ่านตายไปแล้ว พร้อมวิธีส่ง handle ของไฟล์ให้ลูกสืบทอดด้วย CreateProcess จาก C#
อยากให้เราทำให้ไหม?
ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า