ล้างคำเตือนการล็อกไฟล์ของ Nextcloud ด้วย Redis
เปิดใช้งานการล็อกไฟล์ที่เชื่อถือได้ของ Nextcloud เลือกแบ็กเอนด์ Redis หรือ Valkey ที่เหมาะสม และตรวจสอบว่าคำเตือนหายไปโดยไม่มีความเสี่ยงต่อการเปลี่ยนแปลงไฟล์พร้อมกัน
เพื่อล้างคำเตือนการล็อกไฟล์แบบธุรกรรมของ Nextcloud ก่อนอื่นตรวจสอบให้แน่ใจว่าได้เปิดใช้งานการล็อกแล้ว จากนั้นกำหนดค่าแบ็กเอนด์ที่เข้ากันได้กับ Redis แบบถาวร เช่น Redis หรือ Valkey สำหรับอินสแตนซ์ขนาดเล็ก Nextcloud สามารถใช้แบ็กเอนด์การล็อกฐานข้อมูลได้โดยค่าเริ่มต้น สำหรับเซิร์ฟเวอร์ที่ใช้งานจริงหรือเวิร์กโหลดที่ใช้ร่วมกัน การล็อกที่ใช้ Redis เป็นตัวเลือกที่นิยมใช้มากกว่า เนื่องจากช่วยลดปริมาณการรับส่งข้อมูลการล็อกไปยังฐานข้อมูล อย่ากำหนดการล็อกไฟล์ให้กับ Memcached: Nextcloud เตือนว่าค่าที่แคชไว้อาจหายไปโดยไม่คาดคิด
การล็อกไฟล์แบบธุรกรรมช่วยปกป้องการทำงานของไฟล์จากการเขียนที่ขัดแย้งกัน และสามารถปลดล็อกได้เมื่อการอัปโหลดหรือธุรกรรมอื่นๆ ถูกขัดจังหวะ ช่วยป้องกันความเสียหายระหว่างการทำงานปกติ รวมถึงการทำงานที่เกี่ยวข้องกับไฟล์ที่ใช้ร่วมกันและพื้นที่จัดเก็บข้อมูลภายนอก อย่างไรก็ตาม การล็อกไฟล์แบบธุรกรรมไม่ได้ป้องกันไม่ให้คนสองคนแก้ไขเอกสารเดียวกันพร้อมกัน หรือแสดงสถานะการใช้งาน แต่ควบคุมการบันทึกพร้อมกัน โปรดดูเอกสารประกอบเกี่ยวกับการล็อกไฟล์แบบธุรกรรมของ Nextcloud 35
memcache.lockingงานสำหรับเซิร์ฟเวอร์ขนาดเล็กในบ้าน การล็อกฐานข้อมูลอาจเพียงพอแล้ว หากไม่มีคำเตือนเกี่ยวกับการล็อกและไม่มีภาระงานของฐานข้อมูล เลือกใช้ Redis หรือ Valkey สำหรับอินสแตนซ์ที่มีการใช้งานมาก เซิร์ฟเวอร์แอปพลิเคชันหลายตัว หรือเมื่อคุณต้องการจัดการการล็อกไฟล์ภายนอกฐานข้อมูลคำแนะนำเกี่ยวกับการแคชหน่วยความจำของ Nextcloud 35 ในปัจจุบัน แนะนำให้ใช้ APCu สำหรับแคชภายในเครื่อง และ Redis สำหรับการล็อกในการใช้งานแบบเซิร์ฟเวอร์เดียวทั่วไป โหนดเว็บแบบคลัสเตอร์ต้องใช้ปลายทางหรือคลัสเตอร์ Redis หรือ Valkey เดียวกันทั้งหมด
ค้นหาไฟล์การกำหนดค่า Nextcloud ที่ใช้งานอยู่ ซึ่งโดยปกติจะconfig/config.phpอยู่ในไดเร็กทอรีการติดตั้ง Nextcloud สำรองข้อมูลก่อนทำการเปลี่ยนแปลง ค้นหาfilelocking.enabledและmemcache.lockingการอ้างอิงการกำหนดค่าจะตั้งค่าการล็อกเป็นเปิดใช้งานโดยค่าเริ่มต้น หากคุณพบค่าเท็จที่ระบุอย่างชัดเจน ให้เปลี่ยนเป็นจริงหรือลบการกำหนดค่าที่กำหนดเองนั้นออก
'filelocking.enabled' => true,
อย่าเพิ่มสำเนาที่สองของคีย์ที่มีอยู่แล้ว อาร์เรย์การกำหนดค่า PHP ควรมีค่าที่ใช้งานได้จริงเพียงค่าเดียวสำหรับแต่ละการตั้งค่า หากคุณใช้คอนเทนเนอร์หรือแผงควบคุมโฮสติ้งแบบจัดการ ให้ทำการเปลี่ยนแปลงผ่านกลไกการกำหนดค่าที่รองรับ เพื่อให้การเปลี่ยนแปลงคงอยู่หลังจากการอัปเกรดหรือการปรับใช้ใหม่เอกสารอ้างอิงคำเตือนผู้ดูแลระบบ Nextcloud 35ระบุคำเตือนการล็อกและลิงก์ไปยังข้อกำหนดของแบ็กเอนด์
บน Debian หรือ Ubuntu ชื่อแพ็กเกจมักจะมีลักษณะเช่น `<package_name>` redis-serverและphp-redis`<package_name>`; ให้ใช้แพ็กเกจของระบบปฏิบัติการของคุณและจับคู่โมดูล PHP กับเวอร์ชัน PHP ที่เว็บเซิร์ฟเวอร์ใช้งาน หากใช้แบ็กเอนด์ Redis แบบคลาสสิก ให้ติดตั้งและเริ่มต้นบริการ Redis และตรวจสอบให้แน่ใจว่าส่วนขยาย PHP Redis เปิดใช้งานสำหรับเว็บ SAPI แล้ว โมดูล PHP ที่ใช้งานได้เฉพาะ CLI ไม่ได้หมายความว่า PHP-FPM หรือ Apache สามารถโหลดได้
เพิ่มข้อมูลแบ็กเอนด์การล็อกและรายละเอียดการเชื่อมต่อลงในconfig.phpอาร์เรย์ที่มีอยู่ ตัวอย่างนี้สมมติว่า Redis ทำงานอยู่บนเครื่องเดียวกัน โดยรับฟังการเชื่อมต่อที่ localhost พอร์ต 6379 และสามารถเข้าถึงได้โดยกระบวนการ PHP ของ Nextcloud:
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
],
ตั้งค่ารายละเอียดการตรวจสอบสิทธิ์หากเซิร์ฟเวอร์ Redis ของคุณต้องการ หลีกเลี่ยงการเปิดเผย Redis สู่สาธารณะทางอินเทอร์เน็ต จำกัดการเข้าถึงไว้เฉพาะโฮสต์หรือเครือข่ายส่วนตัว และกำหนดค่ากฎการตรวจสอบสิทธิ์และไฟร์วอลล์ สำหรับซ็อกเก็ต Unix ให้ใช้พาธซ็อกเก็ตเป็นโฮสต์ Redis และพอร์ต 0 และตรวจสอบให้แน่ใจว่าผู้ใช้เว็บเซิร์ฟเวอร์สามารถเข้าถึงซ็อกเก็ตนั้นได้ อย่าคัดลอกการตั้งค่า localhost ไปยังการปรับใช้แบบหลายเซิร์ฟเวอร์ เว้นแต่ว่า Redis จะอยู่ภายในเครื่องและใช้งานร่วมกันอย่างสม่ำเสมอ โหนดแอปพลิเคชัน Nextcloud ทั้งหมดต้องเข้าถึงแบ็กเอนด์เดียวกัน
ใน Nextcloud เวอร์ชัน 34.0.2 หรือใหม่กว่า KeyValueCache สามารถเชื่อมต่อกับ Redis หรือ Valkey ได้โดยไม่ต้องติดตั้งส่วนขยาย PHP แยกต่างหาก กำหนดค่าแบ็กเอนด์และที่เก็บข้อมูลคีย์-ค่าดังต่อไปนี้ โดยแทนที่โฮสต์และข้อมูลรับรองใดๆ ด้วยค่าในสภาพแวดล้อมของคุณ:
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
'server' => [
'host' => 'localhost',
'port' => 6379,
],
],
อย่ากำหนดค่าทั้ง Redis และ KeyValueCache ให้เป็นผู้ให้บริการการล็อกที่แข่งขันกัน ให้ปฏิบัติตามเอกสารของ Nextcloud สำหรับข้อมูลรับรอง, TLS, ซ็อกเก็ต, Sentinel หรือโทโพโลยีคลัสเตอร์ แทนที่จะปรับใช้ตัวอย่างเซิร์ฟเวอร์เดียวโดยการคาดเดา
หากคุณเปลี่ยนแปลงการกำหนดค่าบริการที่เข้ากันได้กับ Redis ให้รีสตาร์ทบริการนั้น จากนั้นรีสตาร์ทเว็บเซิร์ฟเวอร์หรือกระบวนการ PHP-FPM หากคุณติดตั้งหรือเปิดใช้งานส่วนขยาย PHP ตรวจสอบสถานะบริการโดยใช้ชื่อบริการสำหรับระบบปฏิบัติการของคุณ ตัวอย่างเช่นsystemctl status redis-serverในระบบ Debian หรือ Ubuntu หลายระบบ ตรวจสอบให้แน่ใจว่าบริการทำงานอยู่และกระบวนการ PHP สามารถเชื่อมต่อได้ การใช้งานคอนเทนเนอร์ควรใช้ชื่อบริการ Redis บนเครือข่ายคอนเทนเนอร์ ไม่ใช่ localhost เว้นแต่ว่าทั้งสองบริการจะใช้เน็ตเวิร์กเนมสเปซเดียวกัน
ลงชื่อเข้าใช้ Nextcloud ในฐานะผู้ดูแลระบบและรีเฟรชภาพรวมการดูแลระบบ คำเตือนการล็อกไฟล์ธุรกรรมควรหายไปเมื่อแบ็กเอนด์ที่กำหนดค่าไว้พร้อมใช้งานและโหลดการตั้งค่าแล้ว อัปโหลด ดาวน์โหลด และซิงค์ไฟล์ทดสอบ จากนั้นตรวจสอบบันทึกของ Nextcloud และ PHP หากมีข้อผิดพลาดในการเชื่อมต่อ Redis หรือสิทธิ์การเข้าถึง คำเตือนที่ยังคงอยู่มักชี้ไปที่การพิมพ์ผิด คีย์การกำหนดค่าซ้ำ ส่วนขยาย PHP/SAPI ที่ไม่ถูกต้อง การเชื่อมต่อเครือข่ายถูกบล็อก สิทธิ์ซ็อกเก็ตไม่ถูกต้อง หรือแบ็กเอนด์ที่ไม่สามารถเข้าถึงได้ แก้ไขสาเหตุเฉพาะนั้นแทนที่จะปิดใช้งานการล็อก
สำหรับตัวเลือกเฉพาะการใช้งาน โปรดศึกษาเอกสารอ้างอิงอย่างเป็นทางการที่มีการระบุเวอร์ชันก่อนเปลี่ยนแปลงโครงสร้าง: การล็อกไฟล์แบบทำธุรกรรม , การแคชหน่วยความจำ และการกำหนดค่า Redis/Valkeyรวมถึงพารามิเตอร์การกำหนดค่า
เปิดใช้งานการล็อกไฟล์ที่เชื่อถือได้ของ Nextcloud เลือกแบ็กเอนด์ Redis หรือ Valkey ที่เหมาะสม และตรวจสอบว่าคำเตือนหายไปโดยไม่มีความเสี่ยงต่อการเปลี่ยนแปลงไฟล์พร้อมกัน
แก้ไขปัญหาที่พบได้ทั่วไปในการสแกน Nextcloud ด้วยการอัปเดตล่าสุด, HTTPS และ HSTS, การตั้งค่าความน่าเชื่อถือของพร็อกซีแบบย้อนกลับอย่างแม่นยำ และการตรวจสอบกับเซิร์ฟเวอร์สาธารณะ
กำหนดค่า Nextcloud SSE สำหรับพื้นที่จัดเก็บข้อมูลที่ต้องการ ปกป้องคีย์การเข้ารหัส และวัดผลกระทบต่อการถ่ายโอนข้อมูลและ CPU ก่อนที่จะเข้ารหัสไฟล์ที่มีอยู่
เชื่อมต่อระบบค้นหาไฟล์ของ Nextcloud กับ Elasticsearch จัดทำดัชนีเนื้อหาเอกสาร และเลือกการตั้งค่าที่เหมาะสมกับเซิร์ฟเวอร์และความต้องการด้านความปลอดภัยของคุณ
ตั้งค่า Nextcloud ให้ลบไฟล์ที่ถูกลบหลังจากระยะเวลาการเก็บรักษาที่กำหนดไว้ กำหนดเวลาการทำงานเบื้องหลังอย่างน่าเชื่อถือ และหลีกเลี่ยงคำสั่งที่ล้างถังขยะของผู้ใช้ทุกคน
เรียกใช้ฟังก์ชันซ่อมแซม OCC ของ Nextcloud อย่างปลอดภัย ดูตัวอย่างการเปลี่ยนแปลงฐานข้อมูล และตรวจสอบว่าเหตุใดคำเตือนจึงยังคงปรากฏอยู่
อนุญาตให้ Nextcloud อัปโหลดไฟล์ขนาดใหญ่ขึ้นได้โดยการปรับการตั้งค่า PHP, Nginx หรือ Apache, พื้นที่จัดเก็บชั่วคราว และระยะเวลาหมดเวลาให้ตรงกัน และตรวจสอบว่าข้อจำกัดใดที่กำลังบล็อกไฟล์อยู่
ตั้งค่าขีดจำกัดหน่วยความจำ PHP ที่ Nextcloud ใช้จริง รีสตาร์ทบริการที่ถูกต้อง และยืนยันการตั้งค่า 512 MB ในภาพรวมผู้ดูแลระบบ
เชื่อมต่อบัคเก็ตจัดเก็บข้อมูลแบบอ็อบเจ็กต์ที่เข้ากันได้ใน Nextcloud โดยใช้แบ็กเอนด์ S3 พร้อมด้วยเอนด์พอยต์ ข้อมูลรับรอง ขอบเขตการเข้าถึง และขั้นตอนการตรวจสอบที่ถูกต้อง
ย้ายไดเร็กทอรีข้อมูล Nextcloud บน Linux ไปยังไดรฟ์ภายนอกอย่างปลอดภัย โดยใช้การเมานต์ UUID แบบถาวร โหมดบำรุงรักษา สำเนาที่ตรวจสอบแล้ว และซิมลิงก์เส้นทางเดิม