แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

ตั้งแต่ Nextcloud เวอร์ชัน 33 เป็นต้นไป ค่าเริ่มต้นของการหมดเวลาการร้องขอข้อมูลเมตาของ App Store จะอยู่ที่ 120 วินาที และสามารถปรับได้ด้วยoccซึ่งจะช่วยแก้ปัญหาการตอบสนองที่ช้าได้ แต่ข้อความ “ไม่สามารถติดตั้งแอปได้เนื่องจากเซิร์ฟเวอร์ไม่มีอินเทอร์เน็ต” ควรตรวจสอบจากเซิร์ฟเวอร์หรือคอนเทนเนอร์ที่ใช้งาน Nextcloud ก่อน ไม่ใช่จากเบราว์เซอร์ของคุณ

ทดสอบการเชื่อมต่อ App Store จากรันไทม์ของ Nextcloud เอง จากนั้นแก้ไขปัญหาเฉพาะจุด: DNS, HTTPS ขาออก, การกำหนดค่าพร็อกซี, ความน่าเชื่อถือของใบรับรอง หรือการตั้งค่า App Store ข้อความที่แสดงเป็นข้อความทั่วไป ไม่ได้พิสูจน์ว่าเซิร์ฟเวอร์ทั้งหมดออฟไลน์

1. ตรวจสอบว่าการติดตั้งล้มเหลวที่จุดใด

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

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

sudo -u www-data php /var/www/nextcloud/occ app:install news

แทนที่newsด้วยรหัสแอปที่คุณต้องการ ใน Docker ให้รันคำสั่งภายในคอนเทนเนอร์แอป Nextcloud ในฐานะผู้ใช้เว็บ เปรียบเทียบผลลัพธ์ทั้งหมดกับnextcloud.log; ข้อผิดพลาดด้านความเข้ากันได้หรือสิทธิ์การเข้าถึงจำเป็นต้องแก้ไขแตกต่างจากความล้มเหลวของ DNS

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

2. ทดสอบ DNS และ HTTPS จากรันไทม์ของ Nextcloud

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

getent ahosts apps.nextcloud.com
curl -sS --connect-timeout 10 --max-time 30 -o /dev/null -w 'HTTP %{http_code}' https://apps.nextcloud.com/api/v1/categories.json

URL เริ่มต้นของ App Store คือhttps://apps.nextcloud.com/api/v1; Nextcloud จะดึงข้อมูลเมตา เช่นcategories.jsonจาก URL นั้น DNS ควรส่งคืนที่อยู่ และ HTTPS ควรส่งคืนการตอบสนอง ข้อผิดพลาดในการแก้ไขชื่อหรือการหมดเวลาชี้ไปที่ DNS การกำหนดเส้นทาง ไฟร์วอลล์ หรือพร็อกซี ข้อผิดพลาด TLS ชี้ไปที่ความน่าเชื่อถือของใบรับรองหรือเวลาของระบบ ข้อผิดพลาด HTTP หมายความว่าเซิร์ฟเวอร์ตอบกลับแล้ว ดังนั้นให้ตรวจสอบ URL และการตอบสนองของพร็อกซี

ใน Docker ให้ทำการตรวจสอบภายในคอนเทนเนอร์แอปพลิเคชัน Nextcloud ยืนยันว่า DNS ทำงานได้ และอนุญาตการส่งข้อมูล TCP ขาออกที่พอร์ต 443 หากมีพร็อกซีกรองปลายทาง ให้ตรวจสอบบันทึกของ Nextcloud เพื่อหาชื่อโฮสต์ดาวน์โหลดจาก App Store รวมถึงโฮสต์แคตตาล็อกด้วย

แผงวินิจฉัยเครือข่ายที่มีแถวแยกต่างหากสำหรับ DNS, การเข้าถึงระบบคลาวด์ และใบรับรอง
ภาพประกอบ: หมวดหมู่การวินิจฉัยสำหรับ DNS, HTTPS และความน่าเชื่อถือของใบรับรอง ตัวบ่งชี้สีเขียวแสดงว่าไม่ใช่ผลลัพธ์จากเซิร์ฟเวอร์นี้

3. แก้ไขปัญหาพร็อกซีหรือ TLS โดยไม่ลดทอนความปลอดภัย

หากการรับส่งข้อมูลขาออกต้องการพร็อกซี ให้กำหนดค่าพร็อกซีสำหรับไคลเอ็นต์ PHP/HTTP ของ Nextcloud ไม่ใช่แค่เบราว์เซอร์หรือเชลล์ของผู้ดูแลระบบ Nextcloud รองรับ การตั้งค่าพร็อกซี proxy(ไม่บังคับproxyuserpwd) และproxyexcludeการตั้งค่าอื่นๆ เก็บข้อมูลรับรองพร็อกซีไว้เป็นความลับ ตรวจสอบว่า PHP-FPM และ CLI สืบทอดสภาพแวดล้อม เดียวกัน HTTPS_PROXYหรือ ไม่NO_PROXY

สำหรับข้อผิดพลาด TLS ให้ตรวจสอบนาฬิกาของเซิร์ฟเวอร์และอัปเดตชุด CA ของระบบปฏิบัติการ หากใช้พร็อกซีตรวจสอบขององค์กรที่ได้รับการอนุมัติ ให้เพิ่ม CA ที่เชื่อถือได้ลงในรันไทม์ PHP อย่าปิดใช้งานการตรวจสอบ TLS หรือใช้curl -kสำหรับการร้องขอจาก App Store เพราะจะทำให้การป้องกันการปลอมแปลงโฮสต์ดาวน์โหลดอ่อนแอลง

โปรแกรมแก้ไขโค้ดที่แสดงอาร์เรย์การกำหนดค่า PHP พร้อมการตั้งค่าที่ถูกไฮไลต์หลายรายการ
ตัวอย่าง: ตรวจสอบการกำหนดค่า Nextcloud สำหรับพร็อกซีขาออกและการตั้งค่า App Store โดยไม่ต้องเปิดเผยข้อมูลประจำตัว

4. ตรวจสอบ URL ของ App Store และขออนุญาตติดตั้งแอป

App Store เปิดใช้งานอยู่แล้วโดยค่าเริ่มต้น และ URL เริ่มต้นคือhttps://apps.nextcloud.com/api/v1ตรวจสอบconfig/config.phpหรือสอบถามค่าที่ใช้งานได้จริงด้วยoccคำสั่ง:

sudo -u www-data php /var/www/nextcloud/occ config:system:get appstoreenabled
sudo -u www-data php /var/www/nextcloud/occ config:system:get appstoreurl

หากappstoreenabledตั้งค่าเป็นเท็จโดยชัดเจน ให้เปิดใช้งานเฉพาะเมื่อนโยบายของคุณอนุญาตให้ใช้ร้านค้าสาธารณะเท่านั้น หากappstoreurlชี้ไปยังร้านค้าแบบกำหนดเองที่เก่าหรือไม่สามารถเข้าถึงได้ ให้คืนค่าเป็นค่าเริ่มต้นเฉพาะเมื่อคุณตั้งใจที่จะใช้ App Store สาธารณะของ Nextcloud เท่านั้น องค์กรที่ใช้ App Store ที่โฮสต์เองควรเก็บ URL นั้นไว้และแก้ไข DNS ใบรับรอง หรือเส้นทางการเข้าถึงแทน

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

5. ลองใหม่อีกครั้ง แล้วค่อยปรับเวลาหมดอายุเฉพาะเมื่อมีหลักฐานบ่งชี้ว่าการทำงานช้า

หลังจากตรวจสอบ DNS, HTTPS, proxy, TLS และการตั้งค่าต่างๆ เรียบร้อยแล้ว ให้ลองติดตั้งใหม่อีกครั้งจากหน้าแอป หรือใช้occ app:installคำสั่งเดิม หากสามารถเข้าถึงคำขอได้ แต่ใช้เวลานานกว่าเวลาหมดอายุของเมตาเดต้าที่กำหนดไว้ Nextcloud เวอร์ชัน 33 ขึ้นไปสามารถตั้งค่าให้สูงขึ้นได้ ตัวอย่างเช่น:

sudo -u www-data php /var/www/nextcloud/occ config:app:set settings appstore-timeout --value=180

การตั้งค่านี้จะเพิ่มเวลารอเป็น 180 วินาที แต่จะไม่แก้ไขปัญหาการบล็อกขาออก ใบรับรองที่ไม่ถูกต้อง หรือ URL ของที่เก็บข้อมูลที่ไม่ถูกต้อง ค่าเริ่มต้นที่ระบุไว้คือ 120 วินาทีใน Nextcloud เวอร์ชัน 33 ขึ้นไป หากต้องการลบการตั้งค่าที่กำหนดเองและกลับไปใช้ค่าเริ่มต้น:

sudo -u www-data php /var/www/nextcloud/occ config:app:delete settings appstore-timeout

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

ภาพหน้าจอเทอร์มินัลแสดงคำสั่งติดตั้งแอปพลิเคชันและส่วนแสดงข้อผิดพลาดที่ถูกไฮไลต์
ภาพประกอบ: มุมมองคำสั่งและบันทึกทั่วไป รายละเอียดข้อผิดพลาดที่แท้จริงต้องมาจากเซิร์ฟเวอร์ที่ได้รับผลกระทบ

การตรวจสอบ

ตรวจสอบให้แน่ใจว่าแคตตาล็อก App Store โหลดได้ แอปที่ต้องการติดตั้งและปรากฏในรายการแอปที่เปิดใช้งาน และบันทึกไม่แสดงข้อผิดพลาดเกี่ยวกับการเชื่อมต่อ TLS หรือหมดเวลาอีกต่อไป หากปลายทางตอบสนองจากรันไทม์ของ Nextcloud แต่ UI ยังคงแสดงว่าไม่มีอินเทอร์เน็ต ให้เปรียบเทียบ URL และการตั้งค่าของ App Store ตรวจสอบความแตกต่างของสภาพแวดล้อมพร็อกซีระหว่าง PHP-FPM และ CLI และตรวจสอบว่ามีเพียงแอปเดียวที่ถูกบล็อกหรือไม่เข้ากันหรือไม่

อ้างอิง: การจัดการแอป Nextcloud และการตั้งค่า App Store ; แอป Nextcloud OCC และคำสั่งการกำหนดค่า ; พารามิเตอร์การกำหนดค่า Nextcloud สำหรับพร็อกซี ; จุดเชื่อม ต่อเมตาเดต้าของ Nextcloud App Store

ฝากความเห็น

เพิ่มส่วนหัว HSTS ที่ปลายทาง HTTPS ที่ให้บริการ Nextcloud

ล้างคำเตือน HSTS ของ Nextcloud โดยการตั้งค่าส่วนหัวที่ Apache, NGINX หรือพร็อกซี TLS ของคุณ จากนั้นตรวจสอบการตอบสนอง HTTPS สาธารณะอย่างปลอดภัย

แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

แก้ไขปัญหาการติดตั้งแอป Nextcloud ที่แจ้งว่าไม่มีการเชื่อมต่ออินเทอร์เน็ต

ตรวจสอบหาสาเหตุของการติดตั้งแอปจาก App Store ที่ล้มเหลว ไม่ว่าจะเป็นปัญหาจาก DNS, HTTPS, พร็อกซี, TLS หรือปัญหาการตั้งค่าจากเซิร์ฟเวอร์ Nextcloud เอง

แก้ปัญหา CPU กระชากเร็วใน Nextcloud Preview ด้วยคิวที่กำหนดเวลาไว้

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

รับการซิงค์ข้อมูลบนเดสก์ท็อป Nextcloud โดยไม่ต้องแสดงสถานะ “กำลังประมวลผลไฟล์” อีกต่อไป

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

ล้างคำเตือน Nextcloud OPcache โดยการปรับขีดจำกัดให้ถูกต้อง

ค้นหาข้อจำกัดของ PHP OPcache ที่ทำให้เกิดคำเตือนของ Nextcloud อัปเดตการตั้งค่า PHP สำหรับเว็บให้ถูกต้อง รีสตาร์ทอย่างปลอดภัย และตรวจสอบผลลัพธ์

เชื่อมต่อ Nextcloud กับ CODE Docker: การตั้งค่าและข้อดีข้อเสีย

เชื่อมต่อ Nextcloud กับ CODE Docker: การตั้งค่าและข้อดีข้อเสีย

เปรียบเทียบ CODE ที่ติดตั้งมากับระบบและ CODE ที่ใช้ Docker จากนั้นเชื่อมต่อ Collabora Online กับ Nextcloud ผ่านพร็อกซีแบบย้อนกลับ HTTPS ที่ปลอดภัย

สร้างคลัสเตอร์ Nextcloud ที่ทนทานด้วย Galera

วางแผนการใช้งาน Nextcloud HA ที่เชื่อถือได้ โดยใช้พื้นที่จัดเก็บข้อมูลร่วมกัน การล็อก Redis การกำหนดเส้นทาง MariaDB ที่คำนึงถึงจำนวนเสียงข้างมาก และการตรวจสอบการทำงานล้มเหลวที่ใช้งานได้จริง

รับสาย 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 ทั่วไป