แก้ไขปัญหา Nextcloud ค้างในโหมดบำรุงรักษาอย่างปลอดภัยด้วย OCC

หาก Nextcloud ยังคงแสดง "โหมดบำรุงรักษา" หลังจากการอัปเดตหรืองานบำรุงรักษา ให้ตรวจสอบก่อนว่าการอัปเกรดฐานข้อมูลเสร็จสมบูรณ์หรือไม่ เมื่อocc statusมีรายงานข้อผิด พลาด needsDbUpgrade: falseให้เรียกใช้occ maintenance:mode --offในฐานะผู้ใช้เว็บเซิร์ฟเวอร์ในการติดตั้ง Nextcloud ที่ถูกต้อง หากรายงานข้อผิดพลาดอีกครั้ง ให้trueดำเนินการให้เสร็จสิ้นocc upgradeก่อนที่จะเปิดเว็บไซต์อีกครั้ง

การปิดใช้งานแฟล็กจะกู้คืนการเข้าสู่ระบบ แต่จะไม่แก้ไขการอัปเกรดที่ล้มเหลว เป้าหมายคือการนำอินสแตนซ์กลับมาออนไลน์โดยที่ทั้งแฟล็กการบำรุงรักษาและสถานะการอัปเกรดได้รับการตรวจสอบแล้ว

1. ตรวจสอบอินสแตนซ์ก่อนเปลี่ยนแปลงสถานะ

เชื่อมต่อกับโฮสต์หรือคอนเทนเนอร์ที่ให้บริการ URL ของ Nextcloud ที่ได้รับผลกระทบ สำหรับการติดตั้งแบบแมนนวลบน Linux ให้เปลี่ยนไปยังไดเร็กทอรี Nextcloud (มักจะเป็น/var/www/nextcloud) และตรวจสอบสถานะในฐานะผู้ใช้ HTTP:

cd /var/www/nextcloud
sudo -E -u www-data php occ status

มองหาmaintenanceและneedsDbUpgradeสถานะที่ปลอดภัยในการปิดใช้งานโดยทั่วไปคือmaintenance: trueเมื่อneedsDbUpgrade: falseหากการบำรุงรักษาเป็นเท็จอยู่แล้ว เบราว์เซอร์อาจแสดงหน้าเว็บที่ล้าสมัยหรือเข้าถึงแบ็กเอนด์อื่น หากneedsDbUpgradeเป็นจริง อย่าเพิ่งปิดโหมดบำรุงรักษา

ตัวอย่างเทอร์มินัลที่แสดงสถานะ occ โดยที่ maintenance เป็น true และ needsDbUpgrade เป็น false
ตัวอย่างสถานะแสดงให้เห็นว่าโหมดบำรุงรักษาเปิดใช้งานอยู่ ในขณะที่ไม่มีการอัปเกรดฐานข้อมูลที่รออยู่ ซึ่งเป็นสถานะที่โดยปกติแล้วควรปิดใช้งานโหมดบำรุงรักษา

Nextcloud ต้องการให้ OCC ทำงานโดยใช้ผู้ใช้ HTTP เพื่อให้การเป็นเจ้าของไฟล์มีความสอดคล้องกัน บน Debian หรือ Ubuntu โดยทั่วไปจะเป็นwww-data; ส่วนระบบปฏิบัติการอื่นๆ อาจใช้apache, http, หรือwwwrunตรวจสอบบัญชีบริการของการติดตั้งของคุณก่อนที่จะแทนที่ผู้ใช้ในคำสั่งเอกสาร OCC ของ Nextcloud ฉบับปัจจุบัน แสดงรายการความแตกต่างของผู้ใช้และคำสั่งตรวจสอบสถานะ

2. ปิดใช้งานโหมดบำรุงรักษาด้วย OCC

สำหรับการติดตั้งไฟล์เก็บถาวรหรือแพ็กเกจ ให้รันคำสั่งจากไดเร็กทอรีที่มีoccสคริปต์ที่ถูกต้อง:

sudo -E -u www-data php occ maintenance:mode --off

คำสั่งควรรายงานว่าโหมดบำรุงรักษาถูกปิดใช้งาน--offตัวเลือกนี้จะเปลี่ยนสถานะการบำรุงรักษา แต่จะไม่ทำการย้ายข้อมูล แก้ไขสิทธิ์ หรือยกเลิกการแทนที่ไฟล์ที่ถูกขัดจังหวะ

ตัวอย่างคำสั่งในเทอร์มินัล: sudo -E -u www-data php occ maintenance:mode --off
นี่คือคำสั่ง OCC สำหรับการติดตั้งแบบมาตรฐาน เมื่อการอัปเกรดเสร็จสมบูรณ์ และคำสั่งกำลังทำงานกับไดเร็กทอรี Nextcloud ที่ใช้งานอยู่

ใช้ wrapper ที่ตรงกับการติดตั้งของคุณ สำหรับอิมเมจ Docker อย่างเป็นทางการของ Nextcloud เอกสารโครงการdocker execและตัวอย่าง Docker Compose จะแสดงไว้ แทนที่ชื่อคอนเทนเนอร์หรือบริการในตัวอย่างด้วยชื่อของคุณ:

# Docker Compose; "app" is an example service name
docker compose exec --user www-data app php occ maintenance:mode --off

# Docker; replace CONTAINER_ID with the Nextcloud container
docker exec -it --user www-data CONTAINER_ID php occ maintenance:mode --off
ตัวอย่างคำสั่ง Docker Compose เพื่อปิดใช้งานโหมดบำรุงรักษาของ Nextcloud ในฐานะ www-data
ใน Docker Compose ให้รัน OCC ภายในบริการ Nextcloud โดยใช้ชื่อผู้ใช้ www-data; ใช้ชื่อบริการ Compose ของคุณแทนชื่อตัวอย่าง app

สำหรับ Nextcloud Snap ให้ใช้ OCC wrapper ฝั่งโฮสต์แทนการเข้าไปในไดเร็กทอรีภายในของ Snap:

sudo nextcloud.occ maintenance:mode --off

โครงการ Snap ระบุถึงสิ่งที่/snap/bin/nextcloud.occอาจจำเป็นหากไดเร็กทอรีนั้นไม่อยู่ใน PATH ของเชลล์ โปรดดูคำแนะนำในโหมดบำรุงรักษาสำหรับ Snap เอกสาร README อย่างเป็นทางการของอิมเมจ Docker ของ Nextcloudอธิบายรูปแบบคำสั่งคอนเทนเนอร์

3. หากการอัปเกรดยังคงค้างอยู่ ให้ดำเนินการให้เสร็จสิ้นก่อน

เมื่อแสดงรายงานสถานะneedsDbUpgrade: trueNextcloud กำลังส่งสัญญาณว่าการย้ายโค้ดและฐานข้อมูลไม่ตรงกัน ซึ่งมักเกิดขึ้นหลังจากตัวอัปเดตได้แทนที่โค้ดแล้ว แต่ขั้นตอนการย้ายข้อมูลยังไม่เสร็จสมบูรณ์ ในสถานะดังกล่าว อาจมีคำสั่ง OCC ที่ใช้งานได้เพียงบางส่วน และโหมดบำรุงรักษาอาจถูกเปิดใช้งานโดยเจตนาเพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงระหว่างการอัปเกรด

ใช้เส้นทางการอัปเกรดสำหรับประเภทการติดตั้งของคุณ และตรวจสอบข้อผิดพลาดของตัวอัปเดตก่อนดำเนินการต่อ สำหรับการติดตั้งแบบมาตรฐานที่ใช้ไฟล์เก็บถาวร หลังจากยืนยันว่ามีเวอร์ชันโค้ด Nextcloud ที่ต้องการแล้ว และทำการสำรองข้อมูลฐานข้อมูลและไฟล์/การกำหนดค่าใหม่ หากคุณยังไม่มี ให้เรียกใช้คำสั่งต่อไปนี้:

sudo -E -u www-data php occ upgrade

รอให้คำสั่งทำงานจนเสร็จสมบูรณ์และแก้ไขข้อผิดพลาดที่รายงาน อย่าสลับโหมดบำรุงรักษาซ้ำๆ เพื่อหลีกเลี่ยงข้อผิดพลาดในการย้ายข้อมูลเอกสารการอัปเกรด ของ Nextcloud อธิบายว่าการย้ายฐานข้อมูลจะเกิดขึ้นหลังจากเปลี่ยนโค้ดเซิร์ฟเวอร์ และแนะนำให้สำรองข้อมูลใหม่ก่อนทำการอัปเกรด Docker, Snap และแพ็กเกจแบบจัดการอาจมีขั้นตอนการอัปเกรดของตนเอง โปรดใช้คำแนะนำเหล่านั้นหากแตกต่างจากตัวอย่างที่ใช้ไฟล์เก็บถาวร

เมื่อการอัปเกรดเสร็จสมบูรณ์และสถานะไม่แสดงการอัปเกรดฐานข้อมูลที่รอดำเนินการอีกต่อไป ให้เรียกใช้maintenance:mode --offคำสั่งที่เหมาะสมด้านบน หลีกเลี่ยงการแก้ไขconfig.phpหรือใช้การอัปเดตฐานข้อมูลโดยตรงเป็นทางลัด หาก OCC ไม่สามารถเขียนการตั้งค่าได้ ให้ตรวจสอบว่าคุณเลือกการติดตั้งและผู้ใช้ HTTP ที่ถูกต้อง และตรวจสอบนโยบายการกำหนดค่าแบบอ่านอย่างเดียวหรือข้อผิดพลาดเกี่ยวกับสิทธิ์ของระบบไฟล์ก่อนที่จะเปลี่ยนสิทธิ์

4. ตรวจสอบธงและเว็บไซต์ที่ใช้งานอยู่

เรียกใช้คำสั่งตรวจสอบสถานะอีกครั้งโดยใช้เส้นทางการติดตั้ง คอนเทนเนอร์ และผู้ใช้เดิม:

sudo -E -u www-data php occ status

ยืนยันทั้งสองค่าmaintenance: falseและneedsDbUpgrade: false. ใน Docker หรือ Snap ให้ทำการตรวจสอบซ้ำผ่าน wrapper เดียวกันกับที่ใช้ในการปิดใช้งานแฟล็ก คำสั่งสถานะของ Nextcloud จะแสดงฟิลด์เหล่านี้ โดยมีรูปแบบที่เครื่องอ่านได้คือocc status --output=json_pretty.

ตัวอย่างผลลัพธ์สถานะ occ ที่แสดงว่า maintenance เป็น false และ needsDbUpgrade เป็น false
การตรวจสอบสำเร็จแสดงว่าโหมดบำรุงรักษาถูกปิดและไม่มีการอัปเกรดฐานข้อมูลที่รอดำเนินการ ตัวอย่างนี้ไม่ได้แสดงผลจากเซิร์ฟเวอร์ที่ใช้งานจริง

จากนั้นให้โหลดเว็บไซต์ใหม่ในแท็บเบราว์เซอร์ใหม่ และทดสอบการเข้าสู่ระบบและการแสดงรายการไฟล์ตามปกติ Nextcloud ระบุว่าผู้ใช้ที่เข้าสู่ระบบก่อนเข้าสู่โหมดบำรุงรักษาอาจต้องรีเฟรชเบราว์เซอร์หลังจากเซิร์ฟเวอร์กลับมาออนไลน์ หาก OCC รายงานว่าการบำรุงรักษาเป็นเท็จ แต่เว็บไซต์ยังคงแสดงหน้าบำรุงรักษา ให้ตรวจสอบว่าชื่อโฮสต์หรือตัวจัดการโหลดเชื่อมโยงไปยังอินสแตนซ์เดียวกันกับที่คุณเปลี่ยนแปลงหรือไม่ ในกรณีที่มีคอนเทนเนอร์หรือโหนดหลายตัว แบ็กเอนด์อื่นอาจยังอยู่ในโหมดบำรุงรักษาอยู่

ดังนั้น การแก้ไขที่ประสบความสำเร็จจึงไม่ใช่แค่การตอบสนองคำสั่งที่ "ปิดใช้งาน" เท่านั้น สถานะ OCC ต้องแสดงแฟล็กทั้งสองเป็นค่าว่าง และ URL สาธารณะที่ต้องการต้องให้บริการอินสแตนซ์ที่ใช้งานได้ หากแฟล็กการอัปเกรดยังคงเป็นจริง หรือคำสั่งการย้ายข้อมูลล้มเหลว ให้กันผู้ใช้ไม่ให้เข้าใช้งาน และแก้ไขข้อผิดพลาดในการอัปเกรดนั้นก่อนที่จะเปิด Nextcloud อีกครั้ง

ฝากความเห็น

รับสาย Nextcloud Talk ได้เมื่อการเชื่อมต่อ Direct Media ล้มเหลว

รับสาย Nextcloud Talk ได้เมื่อการเชื่อมต่อ Direct Media ล้มเหลว

กำหนดค่าและตรวจสอบรีเลย์ TURN ที่สามารถเข้าถึงได้สำหรับ Nextcloud Talk เมื่อไฟร์วอลล์หรือ NAT ที่จำกัดปิดกั้นสื่อการโทรโดยตรง

ล้างคำเตือนเกี่ยวกับความสมบูรณ์ของข้อมูลใน Nextcloud โดยการกู้คืนไฟล์ที่ถูกต้อง

ใช้รายงานไฟล์ที่ไม่ถูกต้องเพื่อระบุโค้ด Nextcloud ที่เปลี่ยนแปลง หายไป หรือเกินมา กู้คืนไฟล์ที่เชื่อถือได้อย่างปลอดภัย และตรวจสอบผลลัพธ์

เชื่อมต่อ Gmail หรือ Microsoft 365 กับ Nextcloud Mail โดยใช้ OAuth2

ตั้งค่า OAuth2 สำหรับ Nextcloud Mail กับ Gmail หรือ Microsoft 365 ตรวจสอบการรับและส่ง และแก้ไขปัญหาการขอความยินยอมและข้อผิดพลาด SMTP ทั่วไป

แก้ไขปัญหา Nextcloud ค้างในโหมดบำรุงรักษาอย่างปลอดภัยด้วย OCC

แก้ไขปัญหา Nextcloud ค้างในโหมดบำรุงรักษาอย่างปลอดภัยด้วย OCC

ใช้ OCC เพื่อกู้คืนการเข้าถึง Nextcloud ตรวจสอบสถานะการย้ายฐานข้อมูล และเลือกคำสั่งที่ถูกต้องสำหรับการติดตั้งแบบเก็บถาวร Docker หรือ Snap

ตั้งค่าการเข้าสู่ระบบ Nextcloud LDAP และ Active Directory

เชื่อมต่อ Nextcloud กับ LDAP หรือ Active Directory จำกัดการเข้าถึงด้วยตัวกรองผู้ใช้และกลุ่ม และตรวจสอบการรับรองความถูกต้องที่ปลอดภัยก่อนเปิดใช้งาน

กำหนดให้ผู้ใช้ Nextcloud ต้องใช้การยืนยันตัวตนแบบสองขั้นตอน

เปิดใช้งานผู้ให้บริการ 2FA ที่รองรับ เตรียมการกู้คืนบัญชี จากนั้นกำหนดให้ต้องใช้การตรวจสอบสิทธิ์แบบสองขั้นตอนสำหรับทุกคนหรือกลุ่ม Nextcloud ที่เลือกไว้

ปกป้องเอกสาร Collabora CODE ที่จัดเก็บไว้ด้วยการเข้ารหัสพื้นที่จัดเก็บข้อมูล

รักษาความปลอดภัยของไฟล์ที่แก้ไขใน Collabora CODE โดยการเข้ารหัสเลเยอร์การจัดเก็บข้อมูล ปกป้องข้อมูลชั่วคราว และตรวจสอบการเข้ารหัสและการกู้คืน

ติดตั้ง Collabora CODE บนสถาปัตยกรรม ARM64 ด้วยอิมเมจที่ถูกต้อง

ติดตั้ง Collabora CODE บนสถาปัตยกรรม ARM64 ด้วยอิมเมจที่ถูกต้อง

ตรวจสอบสถาปัตยกรรมโฮสต์ของคุณ ยืนยันว่าแท็ก CODE เผยแพร่ ARM64 ลบการตั้งค่า AMD64 ที่บังคับใช้ และแยกข้อผิดพลาดของรูปภาพออกจากปัญหาด้านสิทธิ์หรือหน่วยความจำ

เชื่อมต่อ Collabora Online กับ ownCloud Infinite Scale

ตั้งค่าการเชื่อมต่อ WOPI ระหว่าง Collabora Online และ ownCloud Infinite Scale กำหนดค่า URL บริการที่ถูกต้อง และตรวจสอบว่าการแก้ไขเอกสารได้รับการบันทึกแล้ว

การส่งออกไฟล์บล็อกใน Collabora CODE ผ่าน WOPI

ป้องกันการส่งออกเอกสารใน Collabora Online CODE โดยการตั้งค่าสิทธิ์ WOPI DisableExport จากนั้นตรวจสอบว่าโฮสต์และผู้แก้ไขบังคับใช้สิทธิ์นี้หรือไม่