เพิ่มขีดจำกัดการอัปโหลดเว็บของ Nextcloud ให้เกิน 2 GB

หากการอัปโหลดผ่านเบราว์เซอร์ Nextcloud หยุดที่ 2 GB ให้เพิ่มขีดจำกัดในทุกเลเยอร์ที่จัดการคำขอ ได้แก่ PHP, เว็บเซิร์ฟเวอร์หรือรีเวิร์สพร็อกซี และพื้นที่จัดเก็บชั่วคราวที่ใช้งานอยู่ สำหรับเป้าหมายขนาด 5 GB การตั้งค่า PHP-FPM และ Nginx ทั่วไปต้องการupload_max_filesize = 5G, post_max_size = 6G, และclient_max_body_size 5Gรวมถึงพื้นที่ดิสก์และเวลาเพียงพอสำหรับการถ่ายโอน

ไม่มีข้อจำกัด 2 GB ตายตัวสำหรับ Nextcloud คู่มือการดูแลระบบฉบับปัจจุบันระบุว่าขนาดการอัปโหลดสูงสุดเริ่มต้นที่ 512 MB ในขณะที่ข้อจำกัดต่ำกว่า 2 GB เป็นขีดจำกัดสูงสุดบนระบบ 32 บิต เซิร์ฟเวอร์ที่หยุดที่ 2 GB พอดีนั้น มีแนวโน้มที่จะติดขีดจำกัดที่ตั้งค่าไว้หรือตัวกลางมากกว่า ขั้นตอนด้านล่างใช้ 5 GB เป็นตัวอย่าง โปรดแทนที่ด้วยขนาดไฟล์ที่ใหญ่ที่สุดที่คุณต้องการใช้งานจริง

ข้อจำกัด 2 GB นี้มาจาก Nextcloud ใช่หรือไม่?

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

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

คุณควรเปลี่ยนการตั้งค่า PHP ใดบ้าง?

สำหรับ PHP-FPM ให้แก้ไขการตั้งค่าที่ใช้โดยบริการ PHP-FPM ที่ให้บริการ Nextcloud ไม่ใช่แค่การตั้งค่า PHP ผ่านบรรทัดคำสั่ง บน Debian หรือ Ubuntu เส้นทางทั่วไปคือ/etc/php/8.2/fpm/php.ini; แทนที่8.2ด้วยเวอร์ชัน PHP ที่ติดตั้งไว้ การแจกจ่ายหรือคอนเทนเนอร์ของคุณอาจใช้เส้นทางที่แตกต่างกัน คู่มือ PHP ระบุว่าpost_max_sizeต้องมีขนาดใหญ่กว่าupload_max_filesizeดังนั้นควรเผื่อพื้นที่สำหรับค่าใช้จ่ายในการร้องขอด้วย

ไฟล์การกำหนดค่า PHP-FPM เปิดอยู่ในโปรแกรมแก้ไขโค้ด โดยแสดงพาธ /etc/php/8.2/fpm/php.ini
ตัวอย่างเส้นทางไฟล์การกำหนดค่า PHP-FPM ใช้เวอร์ชัน PHP และเส้นทางไฟล์ที่ใช้งานอยู่ในบริการ Nextcloud ของคุณเอง

ตั้งค่าให้เหมาะสมกับเซิร์ฟเวอร์ของคุณ สำหรับตัวอย่างขนาด 5 GB:

upload_max_filesize = 5G
post_max_size = 6G
max_input_time = 3600
max_execution_time = 3600
การตั้งค่า PHP แสดงว่า upload_max_filesize ถูกตั้งค่าเป็น 5G, post_max_size ถูกตั้งค่าเป็น 6G และค่าหมดเวลาสำหรับการรับข้อมูลและการดำเนินการถูกตั้งค่าเป็น 3600 วินาที
ตัวอย่างค่า PHP-FPM สำหรับเป้าหมายการอัปโหลดขนาด 5 GB โดยตั้งค่า post_max_size ให้สูงกว่า upload_max_filesize

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

บันทึกไฟล์และรีสตาร์ทบริการ PHP-FPM ที่เกี่ยวข้องเพื่อให้ระบบอ่านการตั้งค่าใหม่ ตัวอย่างเช่น ในระบบที่ใช้ PHP 8.2 บริการอาจเป็นดังนี้php8.2-fpm:

sudo systemctl restart php8.2-fpm

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

จะเพิ่มขีดจำกัดของเว็บเซิร์ฟเวอร์ได้อย่างไร?

สำหรับ Nginx ให้ใส่คำสั่ง body-size ในserverบล็อกที่ใช้งานอยู่สำหรับ Nextcloud หรือlocationบล็อกที่เหมาะสมเฉพาะเจาะจงกว่านั้น:

client_max_body_size 5G;
การตั้งค่าเซิร์ฟเวอร์ Nginx ในโปรแกรมแก้ไขข้อความ โดยมีคำสั่ง client_max_body_size 5G ปรากฏอยู่ภายในบล็อกเซิร์ฟเวอร์
กำหนดค่าจำกัดขนาดเนื้อหาของ Nginx ไว้ในบล็อกเซิร์ฟเวอร์ที่ใช้งานอยู่ซึ่งจัดการคำขอจาก Nextcloud

จากนั้นตรวจสอบความถูกต้องของการตั้งค่าและรีโหลด Nginx:

sudo nginx -t
sudo systemctl reload nginx

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

สำหรับ Apache ให้ตรวจสอบLimitRequestBodyในการตั้งค่าโฮสต์เสมือนหรือไดเร็กทอรีที่เกี่ยวข้อง เอกสาร Nextcloud ปัจจุบันระบุว่า Apache HTTP Server เวอร์ชัน 2.4.54 และใหม่กว่าจะตั้งค่าเริ่มต้นของคำสั่งนี้เป็น 1 GiB ซึ่งอาจบล็อกการอัปโหลดคำขอเดียวที่มีขนาดเกินกว่านั้นได้ กำหนดขีดจำกัดไบต์ที่เหมาะสมสำหรับโฮสต์ หรือใช้0เฉพาะในกรณีที่คุณต้องการให้ Apache ไม่มีข้อจำกัดขนาดเนื้อหา Apache อาจต้องการเวลาหมดอายุของคำขอที่นานขึ้น โดยเฉพาะอย่างยิ่งหากmod_reqtimeoutเปิดใช้งานอยู่

พื้นที่จัดเก็บไม่เพียงพอหรือหมดเวลาการอัปโหลด ยังสามารถหยุดการอัปโหลดได้หรือไม่?

ใช่แล้ว โฟลเดอร์ชั่วคราวสำหรับการอัปโหลดของ PHP, โฟลเดอร์ชั่วคราวที่กำหนดค่าไว้ของ Nextcloud และของ Nginx client_body_temp_pathต้องมีพื้นที่ว่างเพียงพอและสามารถเขียนได้ เว้นที่ว่างไว้สำหรับการอัปโหลดพร้อมกัน และในบางการกำหนดค่าพื้นที่จัดเก็บข้อมูล อาจรวมถึงการประกอบชิ้นส่วนที่อัปโหลดแล้วด้วย ตรวจสอบระบบไฟล์ที่เกี่ยวข้องด้วยdf -hและยืนยันว่าบัญชีบริการสามารถเขียนไปยังโฟลเดอร์ชั่วคราวที่กำหนดค่าไว้ได้ อย่าตั้งค่าโฟลเดอร์ชั่วคราวไปยังไดรฟ์ที่เต็มหรืออ่านได้อย่างเดียว

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

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

คุณจะยืนยันการแก้ไขปัญหาได้อย่างไร?

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

หน้าต่างมุมมองไฟล์ของ Nextcloud แสดงไฟล์ archive-3gb.zip โดยมีขนาดที่แสดง 3 GB และเครื่องหมายถูกสีเขียวแสดงว่าการแตกไฟล์เสร็จสมบูรณ์
หลังจากทำการเปลี่ยนแปลงแล้ว โปรดตรวจสอบว่าไฟล์ทดสอบที่มีขนาดใหญ่กว่าขีดจำกัดเดิมแสดงผลตามขนาดที่คาดไว้และแสดงว่าเสร็จสมบูรณ์แล้ว

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

เอกสารอย่างเป็นทางการ

ฝากความเห็น

เพิ่มขีดจำกัดการอัปโหลดเว็บของ Nextcloud ให้เกิน 2 GB

เพิ่มขีดจำกัดการอัปโหลดเว็บของ Nextcloud ให้เกิน 2 GB

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

ล้างคำเตือนหน่วยความจำ PHP ของ Nextcloud บนเว็บเซิร์ฟเวอร์

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

เชื่อมต่อ Bucket ที่เข้ากันได้กับ S3 กับพื้นที่จัดเก็บข้อมูลภายนอกของ Nextcloud

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

ย้ายข้อมูล Nextcloud ไปยังไดรฟ์ภายนอกโดยไม่ทำให้พื้นที่จัดเก็บข้อมูลเสียหาย

ย้ายข้อมูล Nextcloud ไปยังไดรฟ์ภายนอกโดยไม่ทำให้พื้นที่จัดเก็บข้อมูลเสียหาย

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

ข้อผิดพลาดฐานข้อมูล Nextcloud หลังจากการอัปเดต: ควรตรวจสอบอะไรก่อน

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

รีเซ็ตรหัสผ่านผู้ดูแลระบบ Nextcloud ที่ลืมไปโดยใช้ OCC

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

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

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

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

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

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

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

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

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

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