ล้างคำเตือนของ ownCloud Apache .htaccess อย่างปลอดภัย

สำหรับ ownCloud Classic ที่ติดตั้งบน Apache ให้แก้ไขคำเตือน “AllowOverride All” หรือ “.htaccess ไม่ทำงาน” โดยการตั้งค่าAllowOverride Allภายในบล็อก Apache ที่ตรงกัน<Directory>สำหรับเว็บรูทของ ownCloud ในโฮสต์เสมือนที่ใช้งานอยู่ ทดสอบการกำหนดค่า Apache โหลดบริการใหม่ และรีเฟรชภาพรวมการดูแลระบบของ ownCloud อย่าเปิดใช้งานการแทนที่สำหรับระบบไฟล์ทั้งหมด

ตัวอย่างโปรแกรมแก้ไข Apache virtual-host ที่แสดง DocumentRoot และบล็อก ownCloud Directory ที่ตรงกัน พร้อมตัวเลือก AllowOverride All
การตั้งค่าที่กำหนดเองนี้จะต้องอยู่ในบล็อกไดเร็กทอรีของ Apache ที่ตรงกับเส้นทางไฟล์ระบบของ ownCloud

คำเตือนนั้นหมายความว่าอย่างไร

คำสั่ง ของ Apache AllowOverrideควบคุมว่า.htaccessไฟล์ใดสามารถนำไปใช้ตั้งค่าได้บ้าง หากปิดใช้งานการแทนที่สำหรับไดเร็กทอรี ownCloud แล้ว Apache อาจเพิกเฉยต่อกฎใน.htaccessไฟล์ที่ ownCloud จัดเตรียมไว้ ซึ่งอาจส่งผลกระทบต่อการเขียนใหม่และกฎความปลอดภัย นี่คือเหตุผลที่คู่มือ ownCloud เวอร์ชัน 10.16 ปัจจุบันได้รวมAllowOverride Allการตั้งค่า Apache ตัวอย่างนี้ไว้ด้วย

คำสั่งนี้ใช้ได้เฉพาะใน<Directory>ส่วนของ Apache เท่านั้น ไม่ควรอยู่ภายใน.htaccessบล็อก<Location><head> หรือพาธ URL Apache ยังเตือนผู้ดูแลระบบไม่ให้เปิดใช้งานการแทนที่ใน<Directory "/">บล็อกส่วนกลาง ให้จำกัดขอบเขตการตั้งค่าไว้ที่ไดเร็กทอรีการติดตั้ง ownCloud แทน ดู คู่มือการติดตั้ง Apache สำหรับownCloud 10.16 และ AllowOverrideเอกสารอ้างอิงของ Apache

ก่อนที่คุณจะแก้ไข Apache

  • ตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์ที่จัดการ ownCloud คือ Apache คำสั่งนี้ไม่ได้กำหนดค่า Nginx หาก Apache อยู่หลังพร็อกซี ให้ระบุโฮสต์ Apache ที่ให้บริการไฟล์ ownCloud
  • ค้นหาเส้นทางการติดตั้งจริงของ ownCloud เช่น/var/www/owncloudใช้เส้นทางไฟล์ระบบที่ Apache ให้บริการ ไม่ใช่ URL ของเบราว์เซอร์/owncloudเช่น
  • สำรองไฟล์ virtual-host ที่ใช้งานอยู่ก่อนทำการเปลี่ยนแปลง ใน Debian หรือ Ubuntu คู่มือของ ownCloud จะใช้/etc/apache2/sites-available/owncloud.confตำแหน่งไฟล์นี้ ส่วนระบบปฏิบัติการอื่นๆ จะใช้ตำแหน่งไฟล์ที่แตกต่างกัน
  • ตรวจสอบว่าโฮสต์เสมือน HTTP และ HTTPS ของคุณแยกกันหรือไม่ ตั้งค่าในโฮสต์เสมือนที่ให้บริการคำขอ ownCloud หากโฮสต์เสมือนทั้งสองให้บริการไฟล์โดยตรง ให้กำหนดค่าทั้งสองให้สอดคล้องกัน

บน Debian หรือ Ubuntu sudo apachectl -Sคำสั่งนี้จะแสดงรายการ virtual host ของ Apache และไฟล์การกำหนดค่าที่ใช้กำหนด virtual host เหล่านั้น ซึ่งจะช่วยหลีกเลี่ยงการแก้ไขเว็บไซต์เริ่มต้นที่ไม่ได้ใช้งาน ในขณะที่ vhost HTTPS ยังคงให้บริการ ownCloud ต่อไป

เพิ่มคำสั่งลงในบล็อกไดเร็กทอรีที่ตรงกัน

เปิดไฟล์ vhost ที่ใช้งานอยู่ แล้วค้นหา<Directory>ส่วน ownCloud ที่มีอยู่ เพิ่มหรือแก้ไขบรรทัดนั้น สำหรับการติดตั้งแบบมาตรฐานที่/var/www/owncloudส่วนที่เกี่ยวข้องอาจมีลักษณะดังนี้:

DocumentRoot /var/www/owncloud

<Directory /var/www/owncloud/>
  Options +FollowSymLinks -Indexes
  AllowOverride All
  Require all granted
</Directory>

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

Allอนุญาตให้คำสั่งใดๆ ที่ได้รับอนุญาตใน.htaccessไฟล์สามารถแทนที่การตั้งค่าเซิร์ฟเวอร์ในไดเร็กทอรีนี้ได้ นี่เป็นสิทธิ์ที่กว้างมาก ดังนั้นควรจำกัดบล็อกนี้ไว้เฉพาะในไดเร็กทอรีเว็บรูทของ ownCloud เท่านั้น อย่าเปลี่ยนแปลงAllowOverride Noneสำหรับ/, /var/www, หรือเว็บไซต์ที่ไม่เกี่ยวข้องเพียงเพื่อปิดเสียงเตือน

ทดสอบ โหลดซ้ำ และตรวจสอบ

บน Debian หรือ Ubuntu เอกสารของ ownCloud mod_rewriteระบุว่าจำเป็นต้องตั้งค่า Apache หากยังไม่ได้เปิดใช้งาน ให้เปิดใช้งานโดยใช้คำสั่ง:

sudo a2enmod rewrite

จากนั้นตรวจสอบการตั้งค่าก่อนใช้งาน:

sudo apachectl -t

ดำเนินการต่อเฉพาะเมื่อ Apache รายงานข้อความSyntax OKถูกต้องเท่านั้น รีโหลด Apache เพื่อให้ระบบอ่าน vhost ที่อัปเดตแล้ว:

sudo systemctl reload apache2

สำหรับการแจกจ่ายที่ใช้httpdชื่อบริการ ให้ใช้คำสั่ง configuration-test และ reload ของการแจกจ่ายนั้นแทน กลับไปที่การตั้งค่า > การจัดการ > ภาพรวม ของ ownCloud แล้วรีเฟรชหน้า ข้อความเตือนควรหายไปหาก Apache กำลังอ่าน vhost ที่แก้ไขแล้วและประมวลผล ownCloud .htaccessอยู่

หน้าจอเทอร์มินัล Linux ที่แสดงคำสั่ง a2enmod rewrite และแสดงว่าโมดูล Apache rewrite ถูกเปิดใช้งานอยู่
ตรวจสอบให้แน่ใจว่าโมดูล rewrite ของ Apache เปิดใช้งานอยู่ เมื่อพฤติกรรมการเขียนใหม่ของ ownCloud เป็นส่วนหนึ่งของคำเตือน
หน้าจอเทอร์มินัล Linux แสดงผลลัพธ์คำสั่ง apachectl -t ที่ส่งคืนค่า Syntax OK ก่อนที่จะรีโหลด Apache
ตรวจสอบความถูกต้องของการตั้งค่า Apache ก่อนที่จะโหลดบริการใหม่
หน้าภาพรวมการดูแลระบบในรูปแบบ ownCloud ที่ไม่มีคำเตือน AllowOverride ปรากฏให้เห็น
หลังจากรีโหลดเสร็จแล้ว ให้กลับไปที่หน้าภาพรวมการดูแลระบบ และตรวจสอบว่าคำเตือนเกี่ยวกับไฟล์ .htaccess หายไปแล้วหรือไม่

หากคำเตือนยังคงอยู่

  • ตรวจสอบ vhost ที่ใช้งานอยู่เรียกใช้คำสั่งsudo apachectl -Sอีกครั้งและยืนยันว่าไฟล์ที่แก้ไขแล้วเป็นของชื่อโฮสต์และพอร์ตที่ ownCloud ใช้งานAllowOverride Allอยู่ บรรทัดในบล็อกที่ไม่ตรงกันจะไม่มีผลใดๆ
  • ตรวจสอบเส้นทางและส่วนให้ถูกต้อง ยืนยันว่าบล็อกนั้นเป็น<Directory /path/to/owncloud/>ส่วนที่แท้จริงและเส้นทางตรงกับไดเร็กทอรีการติดตั้ง Apache จะไม่สนใจAllowOverrideใน.htaccessและ<Location>
  • สร้างกฎ ownCloud ที่ล้าสมัยขึ้นใหม่เฉพาะเมื่อจำเป็นเท่านั้นหาก vhost ถูกต้อง แต่กฎการเขียนใหม่ของ ownCloud จำเป็นต้องได้รับการอัปเดต โปรดดูเอกสารคู่มือocc maintenance:update:htaccessเรียกใช้จากไดเร็กทอรี ownCloud ในฐานะผู้ใช้เว็บเซิร์ฟเวอร์ ตัวอย่างเช่นsudo -u www-data php occ maintenance:update:htaccessผู้ใช้เว็บเซิร์ฟเวอร์ต้องสามารถเขียน.htaccessไฟล์ที่ให้มาสำหรับการอัปเดตนี้ได้ อย่าทำให้ไฟล์สามารถเขียนได้โดยทุกคน ให้แก้ไขความเป็นเจ้าของหรือสิทธิ์การเข้าถึงตามคำแนะนำในการติดตั้งของคุณ
  • อ่านบันทึกข้อผิดพลาดของ Apache หลังจากเกิดข้อผิดพลาด 500การตรวจสอบไวยากรณ์จะตรวจสอบความถูกต้องของการกำหนดค่าหลักของ Apache แต่คำสั่งบางอย่าง.htaccessอาจยังคงล้มเหลวได้หากโมดูลที่เกี่ยวข้องหายไปหรือคำสั่งนั้นไม่ได้รับอนุญาต ใช้บันทึกข้อผิดพลาดเพื่อระบุโมดูลหรือกฎที่เฉพาะเจาะจง

การตั้งค่า URL ที่ไม่มี index.php ตามเอกสารของ ownCloud ยังต้องการmod_rewrite, mod_env, และรูทที่สามารถเขียนได้.htaccessซึ่งเป็นการกำหนดค่าการเขียนใหม่ที่เกี่ยวข้อง ไม่ใช่เหตุผลที่จะขยายการแทนที่ออกไปนอกไดเร็กทอรีของ ownCloud หากการตั้งค่าของคุณใช้ PHP-FPM ให้ปฏิบัติตามคำแนะนำปัจจุบันของ ownCloud สำหรับการติดตั้งนั้นแทนที่จะเปลี่ยนแฮนด์เลอร์ PHP เพื่อแก้ไขคำเตือนการแทนที่ของ Apache หากคำเตือนระบุว่าไดเร็กทอรีข้อมูลอาจเข้าถึงได้จากภายนอก ให้ตรวจสอบว่าไดเร็กทอรีข้อมูลอยู่นอกรูทเว็บหรือได้รับการป้องกันโดยกฎ Apache ที่ชัดเจนด้วย การล้าง.htaccessคำเตือนเพียงอย่างเดียวไม่ใช่หลักฐานว่าไม่สามารถร้องขอไฟล์ส่วนตัวได้โดยตรง

สำหรับพฤติกรรมที่ระบุไว้และข้อจำกัดของแพลตฟอร์ม โปรดดูคำแนะนำเกี่ยวกับ URL ที่ไม่มี index.php ของ ownCloud และเอกสารอ้างอิงคำสั่ง OCC ของ ownCloud

ฝากความเห็น

ล้างคำเตือนของ ownCloud Apache .htaccess อย่างปลอดภัย

ล้างคำเตือนของ ownCloud Apache .htaccess อย่างปลอดภัย

ตั้งค่า AllowOverride All เฉพาะสำหรับเว็บรูทของ ownCloud ตรวจสอบความถูกต้องของ Apache vhost ที่ใช้งานอยู่ และโหลดใหม่อย่างปลอดภัยเพื่อกู้คืนกฎ .htaccess

ตั้งค่า ownCloud Enterprise Auditing และตรวจสอบบันทึกข้อมูล

เปิดใช้งานแอป Enterprise Auditing ของ ownCloud กำหนดเส้นทางเหตุการณ์ admin_audit ไปยังไฟล์บันทึกที่ได้รับการป้องกัน และยืนยันว่าการกระทำของผู้ใช้จริงได้รับการบันทึกแล้ว

เชื่อมต่อ ownCloud Infinite Scale กับ Keycloak ด้วย OIDC

เชื่อมต่อ ownCloud Infinite Scale กับ Keycloak ด้วย OIDC

ปรับการเชื่อมต่อข้อมูลผู้ให้บริการโดเมน เว็บไคลเอ็นต์ และข้อมูลผู้ใช้ของ Keycloak ให้ตรงกัน เพื่อให้ ownCloud Infinite Scale สามารถลงชื่อเข้าใช้ผู้ใช้ได้อย่างน่าเชื่อถือทั้งบนเว็บและไคลเอ็นต์บนมือถือ

ย้ายไฟล์ ownCloud ไปยังเจ้าของใหม่โดยไม่สูญเสียสิทธิ์การแชร์

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

เพิ่มความเร็วในการสืบค้นข้อมูล ownCloud 10 ด้วยการจัดการดัชนีอย่างปลอดภัย

เรียนรู้ว่าเมื่อใดที่ดัชนีฐานข้อมูล ownCloud 10 ต้องการการดูแล วิธีการอัปเดตสคีมาที่รองรับอย่างปลอดภัย และเมื่อใดที่การปรับแต่งคิวรีหรือการเปลี่ยนแปลงฐานข้อมูลเป็นวิธีแก้ไขที่ดีกว่า

เชื่อมต่อแชร์ SMB/CIFS ใน ownCloud โดยไม่ต้องใช้การเชื่อมต่อ Linux

เชื่อมต่อแชร์เครือข่าย Windows หรือ Samba กับ ownCloud ผ่านที่เก็บข้อมูลภายนอก ตรวจสอบข้อมูลประจำตัว และแก้ไขปัญหาโฟลเดอร์ที่ไม่สามารถเข้าถึงได้อย่างปลอดภัย

ลบเวอร์ชันไฟล์ ownCloud อย่างปลอดภัยด้วยคำสั่ง occ

ลบเวอร์ชันไฟล์ ownCloud อย่างปลอดภัยด้วยคำสั่ง occ

ลบไฟล์เวอร์ชัน ownCloud Server Classic ที่จัดเก็บไว้ทั้งหมดสำหรับบัญชีเดียวหรือผู้ใช้ทั้งหมด และแยกความแตกต่างระหว่างการลบแบบสมบูรณ์กับการหมดอายุตามระยะเวลาการเก็บรักษา

การเชื่อมต่อ ownCloud บนมือถือถูกปฏิเสธใช่หรือไม่? ตรวจสอบ URL และการเข้าถึง

การเชื่อมต่อ ownCloud บนมือถือถูกปฏิเสธใช่หรือไม่? ตรวจสอบ URL และการเข้าถึง

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

เรียกใช้งานงานเบื้องหลังของ ownCloud ได้อย่างน่าเชื่อถือด้วยตัวจับเวลา Systemd

แทนที่การเรียกใช้งานงานตามความต้องการด้วยตัวจับเวลา systemd ที่เรียกใช้คำสั่ง occ system:cron ที่ ownCloud รองรับทุกๆ 15 นาที

กู้คืนการซิงค์ WebDAV ของ ownCloud โดยการค้นหาเส้นทางที่เสียหาย

ตรวจสอบการร้องขอ WebDAV ผ่าน Apache, Nginx หรือพร็อกซีแบบย้อนกลับ จากนั้นยืนยันว่าการซิงค์ ownCloud ทำงานได้โดยใช้การทดสอบ PROPFIND ที่มีการตรวจสอบสิทธิ์