แก้ไขปัญหา Nextcloud ค้างอยู่ในโหมดบำรุงรักษา (Maintenance Mode) กับ OCC

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

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

โหมดบำรุงรักษาหมายถึงอะไร

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

สำหรับสำนักงานตัวอย่างนี้ หน้าการบำรุงรักษาเพียงอย่างเดียวไม่สามารถบอกผู้ดูแลระบบได้ว่าการอัปเกรดเสร็จสมบูรณ์แล้วหรือไม่ พวกเขาจำเป็นต้องตรวจสอบกับ Nextcloud เองก่อนที่จะเปลี่ยนโหมด

ขั้นตอนที่ 1: ยืนยันประเภทการติดตั้งและเส้นทาง OCC

ตัวอย่างคำสั่งในที่นี้ใช้สำหรับการติดตั้ง Nextcloud แบบใช้ไฟล์เก็บถาวรทั่วไปบน Ubuntu โดยมีโค้ดอยู่ใน/var/www/nextcloudและบัญชีเว็บเซิร์ฟเวอร์ชื่อwww-data.Nextcloud ระบุว่าไฟล์นี้occอยู่ในไดเร็กทอรีการติดตั้ง และต้องเรียกใช้งานในฐานะผู้ใช้ HTTP ซึ่งโดยปกติแล้วผู้ใช้ดังกล่าวคือ บน Debian และwww-dataUbuntu

สำหรับรูปแบบมาตรฐานนี้ ให้ป้อนไดเร็กทอรีการติดตั้ง:

cd /var/www/nextcloud

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

ในตัวอย่างในสำนักงาน ผู้ดูแลระบบจะตรวจสอบบันทึกการติดตั้งและยืนยันว่าเป็นการติดตั้งแบบเก็บถาวรก่อนที่จะเรียกใช้ OCC

ขั้นตอนที่ 2: ตรวจสอบสถานะของ Nextcloud ก่อนปิดใช้งานโหมดบำรุงรักษา

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

sudo -E -u www-data php occ status

ดูที่ช่องmaintenanceและneedsDbUpgradeฟิลด์ต่างๆ เวอร์ชันปัจจุบันยังรองรับรหัสสถานะการออกด้วย:

sudo -E -u www-data php occ status -e
echo $?

รหัสการออกจากโปรแกรมที่ระบุไว้จะมีประโยชน์เมื่อสคริปต์ตรวจสอบผลลัพธ์: 0บ่งชี้การทำงานปกติ1หมายถึงเปิดใช้งานโหมดบำรุงรักษา และ2หมายถึงocc upgradeจำเป็นต้องดำเนินการ ควรตรวจสอบผลลัพธ์สถานะแบบธรรมดาด้วย อย่าใช้รหัสการออกจากโปรแกรมเพียงอย่างเดียวในการตัดสินใจว่าจะเปิดเว็บไซต์อีกครั้งหรือไม่

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

ขั้นตอนที่ 3: ทำการอัปเกรดที่ยังไม่เสร็จสมบูรณ์ให้เสร็จก่อน

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

sudo -E -u www-data php occ upgrade

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

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

ขั้นตอนที่ 4: ปิดโหมดบำรุงรักษาด้วย OCC

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

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

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

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

ขั้นตอนที่ 5: ตรวจสอบสถานะและอินเทอร์เฟซเว็บ

ตรวจสอบสถานะอีกครั้ง:

sudo -E -u www-data php occ status
sudo -E -u www-data php occ status -e

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

ในสถานการณ์จำลองนี้ ความสำเร็จหมายความว่าทั้งสถานะ OCC และหน้าเว็บต่างเห็นพ้องกันว่าอินสแตนซ์กลับมาออนไลน์แล้ว ตัวอย่างสมมตินี้ไม่ได้กล่าวอ้างว่ามีการเรียกใช้คำสั่งใดๆ หรือว่าเซิร์ฟเวอร์จริงได้รับการซ่อมแซมแต่อย่างใด

หากหน้าการบำรุงรักษายังคงแสดงอยู่

OCC กล่าวว่าการบำรุงรักษาเป็นเรื่องเท็จ

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

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

OCC ไม่สามารถทำงานได้หรือแสดงข้อผิดพลาด PHP

ตรวจสอบให้แน่ใจว่าคำสั่งนั้นใช้เวอร์ชัน PHP CLI และส่วนขยายที่จำเป็นซึ่งเข้ากันได้กับการติดตั้งบนเว็บ Nextcloud ระบุว่า APCu ถูกปิดใช้งานโดยค่าเริ่มต้นสำหรับ PHP CLI และอาจทำให้เกิดข้อผิดพลาด OCC เมื่อ APCu ถูกกำหนดค่าเป็นแคชภายในเครื่อง คู่มือของ Nextcloud ระบุถึงการเปิดใช้งานapc.enable_cliในการกำหนดค่า PHP CLI หรือการเพิ่มลง--define apc.enable_cli=1ในคำสั่ง PHP เมื่อเหมาะสม:

sudo -E -u www-data php --define apc.enable_cli=1 occ status

ใช้เฉพาะเมื่อข้อผิดพลาดบ่งชี้ถึงปัญหาของ APCu CLI เท่านั้น ไม่ใช่วิธีแก้ไขทั่วไปสำหรับข้อผิดพลาด PHP ทั้งหมด โปรดตรวจสอบด้วยว่าคำสั่งทำงานโดยใช้ผู้ใช้เว็บที่ถูกต้องและจากไดเร็กทอรีการติดตั้งที่ถูกต้อง

การอัปเกรดฐานข้อมูลยังคงจำเป็นอยู่

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

ควบคุมช่วงเวลาการบำรุงรักษาให้เหมาะสม

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

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

ฝากความเห็น

10 เครื่องมือ Ping Sweep ที่ดีที่สุดสำหรับการค้นหาอุปกรณ์ในเครือข่ายของคุณ

10 เครื่องมือ Ping Sweep ที่ดีที่สุดสำหรับการค้นหาอุปกรณ์ในเครือข่ายของคุณ

เปรียบเทียบเครื่องมือสแกน Ping 10 ตัว สำหรับการค้นหาเครือข่าย LAN อย่างรวดเร็ว การสแกนข้ามแพลตฟอร์ม และการจัดการที่อยู่ IP เรียนรู้ว่าการสแกน Ping สามารถบอกอะไรคุณได้บ้าง และบอกอะไรไม่ได้บ้าง

6 เครื่องมือบริหารจัดการเครือข่ายที่ดีที่สุดสำหรับการติดตามประสิทธิภาพ

6 เครื่องมือบริหารจัดการเครือข่ายที่ดีที่สุดสำหรับการติดตามประสิทธิภาพ

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

โปรแกรมวิเคราะห์ Wi-Fi ที่ดีที่สุดสำหรับ Windows, iOS และ Android

โปรแกรมวิเคราะห์ Wi-Fi ที่ดีที่สุดสำหรับ Windows, iOS และ Android

เปรียบเทียบแอปวิเคราะห์ Wi-Fi สำหรับ Windows, iPhone และ Android ซึ่งรวมถึงเครื่องมือสำหรับตรวจสอบความแออัดของช่องสัญญาณ การครอบคลุมสัญญาณ แผนที่ความร้อน และการแก้ไขปัญหาเครือข่าย

Ping Monitor: 7 เครื่องมือโอเพนซอร์สฟรีสำหรับตรวจสอบความพร้อมใช้งานของเครือข่าย

Ping Monitor: 7 เครื่องมือโอเพนซอร์สฟรีสำหรับตรวจสอบความพร้อมใช้งานของเครือข่าย

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

QoS ในระบบเครือข่าย: คุณภาพของบริการ (Quality of Service) ทำอะไร และทำงานอย่างไร

QoS ในระบบเครือข่าย: คุณภาพของบริการ (Quality of Service) ทำอะไร และทำงานอย่างไร

เรียนรู้ความหมายของ QoS ในระบบเครือข่าย วิธีที่การกำหนดค่า DSCP และคิวการรับส่งข้อมูลจัดลำดับความสำคัญของเสียง วิดีโอ และแอปพลิเคชันทางธุรกิจ และสิ่งที่ QoS แก้ไขไม่ได้

7 เครื่องมือจัดการที่อยู่ IP ที่ดีที่สุดสำหรับทีมเครือข่าย

7 เครื่องมือจัดการที่อยู่ IP ที่ดีที่สุดสำหรับทีมเครือข่าย

เปรียบเทียบเครื่องมือจัดการที่อยู่ IP เจ็ดแบบ สำหรับการค้นหาซับเน็ต การประสานงาน DNS และ DHCP การสำรวจเครือข่าย และ IPAM แบบโอเพนซอร์ส

แนวทางปฏิบัติที่ดีที่สุดสำหรับการตรวจสอบเครือข่าย: สิ่งที่ควรติดตามและเครื่องมือที่ควรใช้งาน

แนวทางปฏิบัติที่ดีที่สุดสำหรับการตรวจสอบเครือข่าย: สิ่งที่ควรติดตามและเครื่องมือที่ควรใช้งาน

สร้างระบบตรวจสอบเครือข่ายที่ใช้งานได้จริง พร้อมการครอบคลุมอุปกรณ์ที่ชัดเจน ตัวชี้วัดประสิทธิภาพที่เป็นประโยชน์ การแจ้งเตือนที่นำไปปฏิบัติได้จริง และการเปรียบเทียบระหว่าง SolarWinds NPM, PRTG และ OpManager

10 เครื่องมือสแกนเครือข่ายที่ดีที่สุดสำหรับการค้นหาอุปกรณ์และที่อยู่ IP

10 เครื่องมือสแกนเครือข่ายที่ดีที่สุดสำหรับการค้นหาอุปกรณ์และที่อยู่ IP

เปรียบเทียบเครื่องมือสแกนเครือข่ายสำหรับการค้นหาอุปกรณ์อย่างรวดเร็ว การสแกน IP ข้ามแพลตฟอร์ม และระบบจัดการ IP ระดับองค์กร พร้อมคำแนะนำในการเลือกใช้แต่ละตัวเลือกให้เหมาะสมกับเครือข่ายของคุณ

วิธีใช้ Nmap สำหรับ Traceroute และอ่านเส้นทางเครือข่าย

วิธีใช้ Nmap สำหรับ Traceroute และอ่านเส้นทางเครือข่าย

ใช้ตัวเลือก --traceroute ของ Nmap เพื่อแมปฮอปไปยังโฮสต์ที่ได้รับอนุญาต ทำความเข้าใจเอาต์พุตของฮอปและ RTT และแก้ไขปัญหาการตอบสนองที่หายไปโดยไม่ต้องสแกนมากเกินไป

10 เครื่องมือสแกนและวิเคราะห์ไร้สายที่ดีที่สุดสำหรับ Windows, iOS และ Android

10 เครื่องมือสแกนและวิเคราะห์ไร้สายที่ดีที่สุดสำหรับ Windows, iOS และ Android

เปรียบเทียบเครื่องมือสแกนและวิเคราะห์เครือข่ายไร้สาย 10 รายการสำหรับ Windows, iOS และ Android พร้อมคำอธิบายที่ชัดเจนเกี่ยวกับช่องสัญญาณ Wi-Fi แผนที่ครอบคลุม การตรวจสอบ LAN และข้อจำกัดของแต่ละแพลตฟอร์ม