ตั้งค่า URL สาธารณะของ Nextcloud เพื่อให้สามารถเข้าถึงได้ด้วยตัวเอง
แก้ไขข้อความเตือน "ที่อยู่ขาออกหายไป" ของ Nextcloud โดยการตั้งค่า URL หลัก และตรวจสอบ DNS, HTTPS และการกำหนดเส้นทางพร็อกซีแบบย้อนกลับจากตัวเซิร์ฟเวอร์เอง
Nextcloud เวอร์ชัน 34.0.2 ได้เพิ่มแบ็กเอนด์ที่ใช้งานร่วมกับ Redis ได้KeyValueCacheทำให้ Nextcloud เวอร์ชันปัจจุบันสามารถใช้งาน Redis ได้โดยไม่ต้องติดตั้งส่วนขยาย Redis ของ PHP บนเซิร์ฟเวอร์ Ubuntu 24.04 เครื่องเดียว ให้ใช้ APCu สำหรับแคชภายในเครื่องที่รวดเร็ว และใช้ Redis สำหรับแคชแบบกระจายและการล็อกไฟล์แบบธุรกรรม โดยเชื่อมต่อผ่านซ็อกเก็ต Unix วิธีนี้จะช่วยให้ Redis ไม่ต้องทำงานบนเครือข่าย และทำให้ Nextcloud มีแคชที่ใช้ร่วมกันซึ่งทำงานได้กับคำขอ PHP ต่างๆ
คู่มือการดูแลระบบ Nextcloud 35 ฉบับปัจจุบันระบุเส้นทาง Redis สองแบบ สำหรับ Nextcloud เวอร์ชัน 34.0.2 หรือใหม่กว่านั้น แนะนำให้KeyValueCacheใช้ Predis ที่มาพร้อมกับ Nextcloud คุณเพียงแค่ติดตั้งเซิร์ฟเวอร์ Redis และตั้งค่าmemcache.kvstoreแต่ไม่จำเป็นต้องphp-redisใช้ Nextcloud เวอร์ชันเก่ากว่าจะใช้ส่วนขยาย PhpRedis และconfig.phpบล็อกที่แตกต่างกัน ตรวจสอบเวอร์ชันของคุณด้วย โดยsudo -u www-data php /var/www/nextcloud/occ statusแทนที่เส้นทางหากการติดตั้งของคุณอยู่ที่อื่น
คู่มือนี้สมมติว่า Nextcloud และ Redis ทำงานอยู่บนโฮสต์ Ubuntu เดียวกัน เว็บเซิร์ฟเวอร์ทำงานในฐานะwww-dataและคุณจัดการ PHP และ Redis โดยตรง หากคุณติดตั้ง Nextcloud ผ่าน Snap, AIO, Docker หรืออุปกรณ์อื่นๆ ให้ปฏิบัติตามข้อกำหนดของบริการและระบบไฟล์ของแพ็กเกจนั้นๆ แทนที่จะใช้คำสั่งระดับโฮสต์โดยไม่พิจารณาให้ดี APCu เร็วกว่า Redis สำหรับการแคชในเครื่อง ในขณะที่ Redis เหมาะสำหรับการแคชแบบกระจายและการล็อกไฟล์ โปรดดูเอกสารเกี่ยวกับการแคชหน่วยความจำของ Nextcloud
อัปเดตดัชนีแพ็กเกจของ Ubuntu ติดตั้งเซิร์ฟเวอร์ Redis และโมดูล PHP APCu และเปิดใช้งาน Redis เมื่อบูตเครื่อง:
sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server

บน Ubuntu 24.04 เวอร์ชัน PHP เริ่มต้นคือ 8.3 และphp-apcuชื่อแพ็กเกจการแจกจ่ายคือ Redis Redis เป็นบริการแยกต่างหาก ส่วน APCu นั้นถูกโหลดโดย PHP หลังจากติดตั้ง APCu แล้ว ให้รีสตาร์ทตัวจัดการ PHP เพื่อให้กระบวนการ PHP ที่เชื่อมต่อกับเว็บโหลดโมดูล หากคุณใช้ PHP-FPM โดยทั่วไปจะเป็นphp8.3-fpm; หาก Apache ใช้ mod_php ให้รีสตาร์ทapache2ตรวจสอบชื่อบริการที่ใช้งานอยู่ก่อนรีสตาร์ท
สำหรับการตั้งค่าแบบโฮสต์เดียวนี้ ให้ใช้ซ็อกเก็ต Unix และปิดตัวรับฟัง TCP ของ Redis แก้ไข/etc/redis/redis.conf. อัปเดตคำสั่งที่ใช้งานอยู่ที่มีอยู่แทนที่จะปล่อยให้มีสำเนาที่ขัดแย้งกันหลายชุด จากนั้นตั้งค่า:
port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770

port 0ปิดใช้งานพอร์ต TCP; Redis จะรับฟังผ่านเส้นทางซ็อกเก็ตแทน โหมดการอนุญาต770จะอนุญาตให้เจ้าของและกลุ่ม Redis เข้าถึงซ็อกเก็ตได้ ในขณะที่ปฏิเสธการเข้าถึงสำหรับผู้ใช้ภายในอื่นๆ เพิ่มบัญชีเว็บเซิร์ฟเวอร์ลงในกลุ่ม Redis:
sudo usermod -aG redis www-data
sudo systemctl restart redis-server
หลังจากเปลี่ยนการเป็นสมาชิกกลุ่มแล้ว ให้รีสตาร์ทบริการ PHP-FPM หรือ Apache เนื่องจากกระบวนการที่กำลังทำงานอยู่จะยังคงใช้รายชื่อกลุ่มเดิม ควรใช้บริการที่รัน PHP ของ Nextcloud จริงๆ เอกสารของ Redis แนะนำให้จำกัดการเข้าถึงเฉพาะไคลเอ็นต์ที่เชื่อถือได้เท่านั้น การใช้ซ็อกเก็ตภายในเครื่องจะช่วยหลีกเลี่ยงการเปิดเผยพอร์ตแคชบนอินเทอร์เฟซที่เชื่อมต่อกับอินเทอร์เน็ต ดูคำแนะนำด้านความปลอดภัยของ Redisเพิ่มเติม
สำรองข้อมูลconfig/config.phpก่อน จากนั้นเพิ่มรายการเหล่านี้ลงในอาร์เรย์การกำหนดค่า PHP ที่มีอยู่ อย่าแทนที่ส่วนที่เหลือของไฟล์ ใช้เส้นทางที่ติดตั้ง Nextcloud ของคุณ
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
'server' => [
'host' => '/run/redis/redis-server.sock',
],
],

เครื่องหมายทับนำหน้าในพาธโฮสต์บอกให้ KeyValueCache ของ Nextcloud ใช้ซ็อกเก็ต Unix ดังนั้นจึงไม่จำเป็นต้องตั้งค่าพอร์ต TCP หรือโปรโตคอลใดๆ Redis มีทั้งสองอย่างให้เลือกใช้memcache.distributedโดยmemcache.lockingตัวเลือกหลังจะย้ายการล็อกไฟล์แบบธุรกรรมออกจากฐานข้อมูล เปิดใช้ งาน APCu เพื่อการเข้าถึงแคชภายในเครื่องที่มีความหน่วงต่ำกว่า รายการและตัวเลือกซ็อกเก็ตที่แน่นอนอยู่ใน คำแนะนำ KeyValueCache และซ็อกเก็ต Unixmemcache.localของ Nextcloud และคู่มือการล็อกไฟล์แบบธุรกรรม
ขั้นแรก ตรวจสอบให้แน่ใจว่าบริการ Redis ทำงานอยู่และซ็อกเก็ตตอบสนอง:
sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping

การตอบสนองที่คาดหวังสำหรับคำสั่งที่สองคือPONGจากนั้นลงชื่อเข้าใช้ Nextcloud และเปิดภาพรวมการตั้งค่าการดูแลระบบ ยืนยันว่าคำเตือนแคชในเครื่องหายไปแล้ว และตรวจสอบบันทึกของ Nextcloud ว่ายังมีคำเตือน Redis หรือแคชอยู่หรือไม่ คุณยังสามารถเรียกใช้sudo -u www-data php /var/www/nextcloud/occ statusคำสั่งเพื่อยืนยันว่าอินสแตนซ์ยังคงโหลดอยู่ คำสั่งนี้จะตรวจสอบความพร้อมใช้งานของ Nextcloud ไม่ใช่แคชโดยตรง
หาก Redis แจ้งว่า “Permission denied” หรือ Nextcloud เชื่อมต่อไม่ได้ ให้ตรวจสอบว่าซ็อกเก็ตมีอยู่จริง อยู่www-dataในredisกลุ่มที่ถูกต้อง และกลุ่มและโหมดของซ็อกเก็ตอนุญาตให้เข้าถึงได้หรือไม่ รีสตาร์ท Redis และตัวจัดการ PHP หลังจากเปลี่ยนการเป็นสมาชิกกลุ่ม หาก Redis สร้างซ็อกเก็ตไม่ได้ ให้ตรวจสอบการพิมพ์ผิดในเส้นทางที่กำหนดค่าไว้และตรวจสอบไฟล์sudo journalctl -u redis-server -n 50.NET Framework อย่าแก้ปัญหาการอนุญาตซ็อกเก็ตโดยการเปิด Redis ให้เข้าถึงได้จากเครือข่ายสาธารณะ
หากเวอร์ชัน Nextcloud ของคุณเก่ากว่า 34.0.2 ให้ติดตั้งส่วนขยาย PHP Redis ที่ตรงกับเวอร์ชัน PHP ที่ให้บริการ Nextcloud บนระบบ Ubuntu 24.04 ที่ใช้ PHP 8.3 มาตรฐาน แพ็กเกจคือphp-redis; Ubuntu จะแสดงเป็นส่วนขยาย PHP 8.3 Redis รีสตาร์ทตัวจัดการ PHP ที่ใช้งานอยู่หลังจากติดตั้งแล้ว ใน ให้config.phpใช้คลาส Redis และบล็อกการเชื่อมต่อแบบเดิมแทนรายการ KeyValueCache ด้านบน:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/run/redis/redis-server.sock',
'port' => 0,
],
รายการแพ็กเกจ Noble php-redisของ Ubuntu ยืนยันการแมปแพ็กเกจแล้ว อย่ากำหนดค่าแบ็กเอนด์ทั้งสองพร้อมกัน หลังจากบันทึกการกำหนดค่าที่ตรงกันแล้ว ให้ทำซ้ำการตรวจสอบการเชื่อมต่อซ็อกเก็ตและการตรวจสอบภาพรวมผู้ดูแลระบบ Nextcloud
แก้ไขข้อความเตือน "ที่อยู่ขาออกหายไป" ของ Nextcloud โดยการตั้งค่า URL หลัก และตรวจสอบ DNS, HTTPS และการกำหนดเส้นทางพร็อกซีแบบย้อนกลับจากตัวเซิร์ฟเวอร์เอง
ตั้งค่า APCu และ Redis ผ่านซ็อกเก็ต Unix ในเครื่องเพื่อใช้ในการแคชและล็อกไฟล์ของ Nextcloud โดยมีขั้นตอนสำหรับ Nextcloud เวอร์ชันปัจจุบันและเวอร์ชันเก่า
ตรวจสอบโหมด cron ของ Nextcloud ซ่อมแซมบริการ systemd และตัวจับเวลา และตรวจสอบว่างานเบื้องหลังทำงานหลังจากเริ่มต้นระบบและทุกๆ ห้านาที
เปิดใช้งานการล็อกไฟล์ที่เชื่อถือได้ของ Nextcloud เลือกแบ็กเอนด์ Redis หรือ Valkey ที่เหมาะสม และตรวจสอบว่าคำเตือนหายไปโดยไม่มีความเสี่ยงต่อการเปลี่ยนแปลงไฟล์พร้อมกัน
แก้ไขปัญหาที่พบได้ทั่วไปในการสแกน Nextcloud ด้วยการอัปเดตล่าสุด, HTTPS และ HSTS, การตั้งค่าความน่าเชื่อถือของพร็อกซีแบบย้อนกลับอย่างแม่นยำ และการตรวจสอบกับเซิร์ฟเวอร์สาธารณะ
กำหนดค่า Nextcloud SSE สำหรับพื้นที่จัดเก็บข้อมูลที่ต้องการ ปกป้องคีย์การเข้ารหัส และวัดผลกระทบต่อการถ่ายโอนข้อมูลและ CPU ก่อนที่จะเข้ารหัสไฟล์ที่มีอยู่
เชื่อมต่อระบบค้นหาไฟล์ของ Nextcloud กับ Elasticsearch จัดทำดัชนีเนื้อหาเอกสาร และเลือกการตั้งค่าที่เหมาะสมกับเซิร์ฟเวอร์และความต้องการด้านความปลอดภัยของคุณ
ตั้งค่า Nextcloud ให้ลบไฟล์ที่ถูกลบหลังจากระยะเวลาการเก็บรักษาที่กำหนดไว้ กำหนดเวลาการทำงานเบื้องหลังอย่างน่าเชื่อถือ และหลีกเลี่ยงคำสั่งที่ล้างถังขยะของผู้ใช้ทุกคน
เรียกใช้ฟังก์ชันซ่อมแซม OCC ของ Nextcloud อย่างปลอดภัย ดูตัวอย่างการเปลี่ยนแปลงฐานข้อมูล และตรวจสอบว่าเหตุใดคำเตือนจึงยังคงปรากฏอยู่
อนุญาตให้ Nextcloud อัปโหลดไฟล์ขนาดใหญ่ขึ้นได้โดยการปรับการตั้งค่า PHP, Nginx หรือ Apache, พื้นที่จัดเก็บชั่วคราว และระยะเวลาหมดเวลาให้ตรงกัน และตรวจสอบว่าข้อจำกัดใดที่กำลังบล็อกไฟล์อยู่