คำถามที่พบบ่อย¶
FAQ นี้สรุปคำถามที่พบบ่อยจาก issues ด้านการสนับสนุน MRBS ทั้งที่เปิดอยู่และปิดแล้ว คำตอบได้รับการตรวจสอบสำหรับ MRBS 1.12.2 และจะไม่นำวิธีแก้ปัญหาที่ล้าสมัยมาใช้เพียงเพราะเคยปรากฏใน issue
วิธีเลือกคำถามที่พบบ่อยนี้¶
การตรวจสอบครอบคลุมปัญหาที่มีป้ายกำกับเหล่านี้อย่างน้อยหนึ่งรายการ: Help, Help from scratch, LDAP help need, Problems with room's capacity, support, spanish help, support request, help wanted, และ custom view help.
ในวันที่ 26 กรกฎาคม พ.ศ. 2569 ป้ายกำกับ support request เพียงอย่างเดียวมี issue 3,076 รายการ โดยเปิดอยู่ 1,590 รายการและปิดแล้ว 1,486 รายการ หลายๆ กรณีเป็นกรณีในอดีตที่นำเข้า การปรับแต่งแบบครั้งเดียว คำขอคุณลักษณะ หรือคำถามที่ไม่มีคำตอบที่ได้รับการยืนยัน เฉพาะคำถามที่เกิดซ้ำพร้อมคำตอบที่ยังมีประโยชน์สำหรับ 1.12.2 เท่านั้นที่รวมอยู่ด้านล่าง ลิงก์ปัญหาระบุแหล่งที่มา ไม่ใช่การทดแทนการอ้างอิงการกำหนดค่าปัจจุบัน
การติดตั้งและการวินิจฉัย¶
เหตุใดฉันจึงเห็นหน้าว่างหรือ HTTP 500¶
อ่านบันทึกข้อผิดพลาดของเว็บเซิร์ฟเวอร์และ PHP ก่อน หน้าว่างเป็นเพียงอาการที่มองเห็นได้ โดยปกติข้อผิดพลาดที่เป็นประโยชน์จะอยู่ในบันทึก จากนั้นตรวจสอบ:
- เวอร์ชัน PHP ที่รองรับและส่วนขยายที่จำเป็น
config.inc.phpกับphp -l config.inc.php;- การเชื่อมต่อฐานข้อมูลและไดรเวอร์ PDO ที่ตรงกัน
- การอนุญาตไฟล์และการกำหนดค่า PHP ที่ใช้งานอยู่ และ
- คำขอที่ล้มเหลวไปถึงการติดตั้ง MRBS ที่ต้องการหรือไม่
อย่าเปิดใช้งานการแสดงข้อผิดพลาดสาธารณะ PHP บนระบบที่ใช้งานจริง และอย่าวางข้อมูลรับรองลงในปัญหา ดู การแก้ไขปัญหา. กรณีสนับสนุน #1007 ต้นฉบับไม่มีการแก้ไขเฉพาะผลิตภัณฑ์ที่ได้รับการยืนยัน ซึ่งเป็นสาเหตุที่คำตอบนี้เริ่มต้นด้วยหลักฐานจากบันทึกในเครื่อง
เหตุใดการเข้าสู่ระบบฐานข้อมูลจึงล้มเหลวบน cPanel หรือโฮสติ้งที่ใช้ร่วมกัน¶
ใช้ฐานข้อมูลและชื่อผู้ใช้ที่สร้างโดยแผงควบคุมโฮสติ้ง cPanel มักจะนำหน้าทั้งสองด้วยชื่อบัญชีโฮสติ้ง ตรวจสอบด้วยว่าผู้ใช้มีสิทธิ์ในฐานข้อมูลนั้น SQLSTATE[28000] หรือ “การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้” เป็นการตรวจสอบฐานข้อมูลหรือข้อผิดพลาดในการให้สิทธิ์ ไม่ใช่ข้อผิดพลาดของตาราง MRBS
รักษา $db_database, $db_login และ $db_password ให้สอดคล้องกับค่าของแผงควบคุม สร้างสคีมาหลังจากการเชื่อมต่อสำเร็จเท่านั้น ดู issue #3801 และ การติดตั้ง
เหตุใดการเปลี่ยนแปลงการกำหนดค่าจึงไม่มีผล?¶
ตรวจสอบว่าคุณแก้ไข config.inc.php ที่โหลดโดยการปรับใช้และไซต์นี้ ค่าที่กำหนดในภายหลังจะแทนที่ค่าก่อนหน้า การตั้งค่าที่บันทึกไว้สำหรับพื้นที่ที่มีอยู่ในฐานข้อมูล การเปลี่ยน areadefaults.inc.php จะเปลี่ยนค่าเริ่มต้นสำหรับพื้นที่ใหม่เท่านั้น ในโหมดหลายไซต์ ให้ยืนยันไซต์ที่เลือกและการกำหนดค่า สุดท้าย ให้ล้างหรือรีสตาร์ท PHP opcode caching หากเป็นไปได้
ดู config.inc.php แบบเจาะลึก และ การแก้ไขปัญหา
เข้าสู่ระบบและ LDAP¶
ฉันจะกำหนดให้ผู้ใช้ลงชื่อเข้าใช้ก่อนจึงจะเห็นปฏิทินได้อย่างไร¶
ชุด:
ทดสอบมุมมองสำหรับผู้ใช้ที่ยังไม่ได้เข้าสู่ระบบในหน้าต่างเบราว์เซอร์ส่วนตัว การตั้งค่านี้ปิดกั้นการเข้าถึงปฏิทินสาธารณะ แต่ไม่ได้เลือกหรือกำหนดค่าวิธีตรวจสอบสิทธิ์ ดู issue #3979 และ ผู้ใช้และการอนุญาต
ทำไม MRBS ถึงบอกว่าส่วนขยาย PHP LDAP หายไป¶
ติดตั้งหรือเปิดใช้ส่วนขยาย LDAP ในสภาพแวดล้อม PHP ที่เว็บเซิร์ฟเวอร์ใช้ แล้วเริ่มสภาพแวดล้อมนั้นใหม่ PHP บนบรรทัดคำสั่งและ PHP ของเว็บเซิร์ฟเวอร์อาจโหลดไฟล์ php.ini คนละไฟล์ จึงควรตรวจสอบสภาพแวดล้อมของเว็บแทนที่จะดูเพียงผลลัพธ์จาก php -m ชื่อแพ็กเกจที่แน่นอนและคำสั่งรีสตาร์ทขึ้นอยู่กับระบบปฏิบัติการและการติดตั้ง PHP
ดู issue #1022 และ การตรวจสอบสิทธิ์ LDAP
ฉันจะค้นหา LDAP DN ฐานและ DN ผู้ใช้ที่ถูกต้องได้อย่างไร¶
อย่าอนุมานแผนผังไดเร็กทอรีจากชื่อองค์กร ค้นหาด้วยไคลเอนต์ LDAP เช่น ldapsearch โดยใช้เซิร์ฟเวอร์เดียวกัน, โหมด TLS, DN พื้นฐาน, ข้อมูลระบุตัวตนในการค้นหา และแอตทริบิวต์ชื่อผู้ใช้ที่ MRBS จะใช้ Active Directory มักใช้ sAMAccountName; โดยทั่วไปแล้ว OpenLDAP จะใช้ uid แต่สคีมาไดเรกทอรีนั้นเชื่อถือได้
ทดสอบข้อมูลระบุตัวตนการค้นหาแยกจากการเชื่อมโยงผู้ใช้ปลายทาง และห้ามเผยแพร่รหัสผ่านการเชื่อมโยง DN ที่ไม่ถูกต้องเป็นสาเหตุหลักใน issue #1083
การเข้าถึง LDAP ถูกจำกัดไว้เฉพาะกลุ่มได้อย่างไร¶
ใช้ $ldap_filter เพื่อตัดสินใจว่าผู้ใช้ไดเรกทอรีใดสามารถเข้าถึง MRBS สำหรับเค้าโครง Active Directory ที่เก็บความเป็นสมาชิกไว้ในออบเจ็กต์ผู้ใช้ ตัวกรองสามารถจับคู่ memberof สำหรับเค้าโครงสไตล์ OpenLDAP ที่เก็บความเป็นสมาชิกไว้บนออบเจ็กต์กลุ่ม ให้กำหนดค่า $ldap_filter_base_dn, $ldap_filter_user_attr และ $ldap_filter ที่เหมาะสม
ใช้ DN และชื่อแอตทริบิวต์ที่แน่นอนจากไดเรกทอรี ทดสอบบัญชีที่ได้รับอนุญาตและบัญชีที่ถูกปฏิเสธ และยืนยันวิธีการทำงานของกลุ่มที่ซ้อนกัน ตัวกรองการเข้าถึงเหล่านี้แยกจาก $ldap_admin_group_dn ซึ่งระบุผู้ดูแลระบบ MRBS ดู issue #2033 และ การตรวจสอบสิทธิ์ LDAP
LDAP การเข้าสู่ระบบใช้งานได้ เหตุใดผู้ใช้จึงไม่ใช่ผู้ดูแลระบบ MRBS¶
เมื่อตั้งค่า $ldap_admin_group_dn MRBS จะใช้กลุ่มนั้นแทน $auth['admin'] ยืนยัน:
- DN กลุ่มเต็ม
$ldap_group_member_attrib—memberofโดยค่าเริ่มต้น;- ข้อมูลระบุตัวตนในการค้นหา LDAP อาจอ่านแอตทริบิวต์ความเป็นสมาชิกของผู้ใช้ได้ และ
- ไม่ว่าไดเร็กทอรีส่งคืนความเป็นสมาชิกโดยตรงหรือแบบซ้อนกัน
เปิดใช้งานการวินิจฉัย LDAP ชั่วคราวเฉพาะในสภาพแวดล้อมการทดสอบที่ได้รับการป้องกัน และลบออกในภายหลัง ใน issue #3943 ข้อมูลระบุตัวตนในการค้นหาไม่สามารถอ่านข้อมูลกลุ่มที่ต้องการได้ในตอนแรก
เหตุใด LDAP จึงล้มเหลวได้หลังจากอัปเกรด MRBS แม้ว่าการผูกรหัสผ่านจะใช้งานได้¶
MRBS ปัจจุบันอาจต้องค้นหา DN ของผู้ใช้และแอตทริบิวต์ เช่น ชื่อที่แสดงหรืออีเมล หากการค้นหาแบบไม่ระบุชื่อไม่พร้อมใช้งาน ให้กำหนดค่า:
$ldap_dn_search_attrib = 'sAMAccountName'; // use the directory's real attribute
$ldap_dn_search_dn = 'search-account@example.org';
$ldap_dn_search_password = 'read-from-a-protected-secret';
ระบุตัวตนการค้นหาเฉพาะสิทธิ์ในการอ่านที่ต้องการเท่านั้น เก็บรหัสผ่านไว้นอกรูทเอกสารและรวมรหัสผ่านจากไฟล์การกำหนดค่าที่ได้รับการป้องกัน ดู issue #3895.
MRBS สามารถค้นหามากกว่าหนึ่งไดเรกทอรี LDAP ได้หรือไม่¶
ใช่ การตั้งค่า LDAP หลายอย่าง รวมถึง $ldap_host, $ldap_port, $ldap_base_dn และแอตทริบิวต์การค้นหา สามารถเป็นอาร์เรย์ได้ หากพารามิเตอร์ LDAP ที่รองรับอาร์เรย์ได้ตัวหนึ่งเป็นอาร์เรย์ พารามิเตอร์ที่รองรับอาร์เรย์ทุกตัวจะต้องมีจำนวนองค์ประกอบเท่ากัน หนึ่งรายการต่อไดเร็กทอรี
ทดสอบการเข้าสู่ระบบ การค้นหาแอตทริบิวต์ ตัวกรองการเข้าถึง และการแมปผู้ดูแลระบบสำหรับแต่ละไดเร็กทอรี ดู issue #3981 และส่วน LDAP ใน systemdefaults.inc.php
การจอง ห้องพัก และการอนุญาต¶
เหตุใดช่องการจองแบบกำหนดเองจึงใช้ได้กับการจองรายการเดียวแต่ใช้ไม่ได้กับการจองเป็นชุด¶
คอลัมน์การจองแบบกำหนดเองทุกคอลัมน์จะต้องมีอยู่ในทั้งตาราง entry และ repeat ที่มีชื่อ ประเภท ความยาว ค่าความเป็นโมฆะ และค่าเริ่มต้นเดียวกัน ถือว่าทั้งสองคอลัมน์เป็นการเปลี่ยนแปลงสคีมาเดียว
ดู issue #3986 และ ฟิลด์ที่กำหนดเอง
ความจุของห้องจะขัดขวางการจองที่มีผู้เข้าร่วมมากเกินไปหรือไม่¶
ไม่ ค่าห้อง capacity คือข้อมูลเมตาของห้องที่แสดงโดย MRBS; จะไม่ถูกเปรียบเทียบกับจำนวนผู้เข้าร่วมการจองโดยอัตโนมัติ หากไซต์ต้องบังคับใช้กฎนี้ ให้เพิ่มฟิลด์ที่กำหนดเองสำหรับจำนวนผู้เข้าร่วมที่เหมือนกันใน entry และ repeat จากนั้นจึงนำไปใช้และรักษาการตรวจสอบฝั่งเซิร์ฟเวอร์ การตรวจสอบฝั่งไคลเอ็นต์เพียงอย่างเดียวไม่เพียงพอ
หากเปิดใช้งานการลงทะเบียน ความจุของเหตุการณ์จะควบคุมการลงทะเบียนสำหรับเหตุการณ์นั้น มันไม่ได้เลือกห้องที่มีขนาดเหมาะสมโดยอัตโนมัติ ดู issue #1055, พื้นที่และห้องพัก และ ฟิลด์ที่กำหนดเอง
พื้นที่หนึ่งสามารถใช้ช่วง 30 นาทีในตอนเช้า และช่วง 15 นาทีต่อมาได้หรือไม่¶
ไม่ผ่านการกำหนดค่าพื้นที่มาตรฐาน พื้นที่มีการแก้ไขครั้งเดียว ใช้ความละเอียดที่ต้องการน้อยที่สุดตลอดทั้งวัน หรือสร้างพื้นที่แยกต่างหากเมื่อทรัพยากรและรูปแบบการดำเนินงานอนุญาต การแก้ไขที่ขึ้นกับเวลาจำเป็นต้องมีการปรับแต่งโค้ดที่คงไว้
ดู issue #4011.
เหตุใดผู้สร้างการจองจึงไม่เห็นแก้ไขหรือลบ?¶
ตรวจสอบนโยบายการจองของพื้นที่ที่มีอยู่ได้ที่ ห้อง ขีดจำกัดและกฎการแก้ไขล่วงหน้า/ในอนาคตสำหรับการจองที่ผ่านมาสามารถลบการกระทำเหล่านั้นได้แม้กระทั่งจากผู้สร้างก็ตาม นอกจากนี้ ยังยืนยันข้อมูลประจำตัวในการลงชื่อเข้าใช้ ความเป็นเจ้าของ สถานะผู้ดูแลระบบ และไม่ว่ารายการนั้นเป็นรายการเดียวหรือเป็นชุด
การเปลี่ยน areadefaults.inc.php จะไม่อัปเดตพื้นที่ที่มีอยู่ ดู issue #3994 และ นโยบายการจอง
ห้องพักที่เลือกในการจองหลายห้องจะเชื่อมโยงอย่างถาวรหรือไม่¶
หมายเลข MRBS สร้างรายการการจองแยกต่างหาก หากมีการแก้ไขหรือลบในภายหลัง กลุ่มอื่นๆ จะไม่ใช่กลุ่มที่ลิงก์ถาวร อย่าคัดลอกรายการที่สร้างขึ้นของห้องที่เลือกทั้งหมดลงในทุกคำอธิบาย เว้นแต่ไซต์จะคงรายการนั้นไว้ตลอดทั้งการดำเนินการสร้าง แก้ไข และลบ
ดูissue #2223.
ฉันสามารถเพิ่มระดับการเข้าถึงเพิ่มเติมหรือให้สิทธิ์การเข้าถึงรายงานแก่บทบาทที่กำหนดเองเท่านั้นได้หรือไม่¶
มาตรฐาน MRBS ใช้ระดับการเข้าถึง 0, 1 และ 2 บทบาทตัวเลขเพิ่มเติมและการอนุญาตเฉพาะหน้าจำเป็นต้องมีการปรับแต่งการอนุญาตในท้องถิ่น การทดสอบ และตรวจสอบหลังการอัปเกรดทุกครั้ง โปรแกรมแก้ไขจากปัญหาเก่าไม่ใช่ตัวเลือกการกำหนดค่าที่รองรับ
ต้องการการมอบหมายพื้นที่/ห้องมาตรฐานและรายงานสาธารณะพร้อมรายการอนุญาตที่แคบซึ่งตรงตามข้อกำหนด ดู issue #3999 และ ผู้ใช้และการอนุญาต
อีเมล ภาษา และเวลา¶
เหตุใดการแก้ไขข้อบกพร่องอีเมลจึงรายงานว่า "ไม่มีผู้รับ"¶
เปิดใช้งานบทบาทผู้รับที่ต้องการอย่างน้อยหนึ่งบทบาท:
$mail_settings['admin_on_bookings'] = true;
$mail_settings['area_admin_on_bookings'] = true;
$mail_settings['room_admin_on_bookings'] = true;
$mail_settings['booker'] = true;
สำหรับตัวเลือกแรก ให้ตั้งค่า $mail_settings['recipients'] สำหรับผู้ดูแลพื้นที่และห้อง โปรดเก็บที่อยู่อีเมลไว้ใน MRBS ผู้ใช้ LDAP ต้องมีแอตทริบิวต์อีเมลที่อ่านได้และแมปอย่างถูกต้องเมื่อแจ้งผู้จอง จากนั้นทดสอบสร้าง แก้ไข และลบกิจกรรมแยกกัน
ดู issue #3795 และ การแจ้งเตือนทางอีเมล
ฉันควรใช้ค่าใดสำหรับ $override_locale¶
ใช้แท็กภาษา BCP 47 เช่น en, en-GB, de, fr หรือ es ไม่ใช่สตริงภาษาของระบบปฏิบัติการ เซิร์ฟเวอร์จะต้องยังคงมีข้อมูลสถานที่ที่เหมาะสม บนระบบที่คล้าย Unix locale -a จะแสดงตำแหน่งที่ติดตั้ง
ปล่อย $override_locale ว่างไว้เพื่อใช้ MRBS การเลือกอัตโนมัติ ดู issue #3984 และ ข้อความและคำแปล
เหตุใดเวลาที่แสดงจึงผิดไปหนึ่งชั่วโมงพอดี?¶
ตรวจสอบตามลำดับ:
- เขตเวลาของห้องและพื้นที่
- ทั่วโลก
$timezone; - PHP เขตเวลาและแพ็คเกจข้อมูลเขตเวลา
- การเปลี่ยนเวลาออมแสงของวันที่ได้รับผลกระทบ และ
- ไม่ว่าการประทับเวลาที่เก็บไว้หรือเฉพาะการแสดงผลนั้นผิด
ใช้เขตเวลา IANA เช่น Europe/Berlin ไม่ใช่ออฟเซ็ต UTC คงที่ ปัญหาเก่ากล่าวถึงวิธีแก้ปัญหาการจัดรูปแบบเฉพาะเวอร์ชัน $force_strftime ไม่ใช่การตั้งค่าใน MRBS 1.12.2 และต้องไม่ถูกคัดลอกจาก issue #3967 ดู การแก้ไขปัญหา.
ฉันจะปรับแต่งหรือแปลหน้าวิธีใช้และข้อความอินเทอร์เฟซได้อย่างไร¶
หน้าความช่วยเหลือในแอปพลิเคชันโหลดจาก web/site_faq/ ตัวอย่างเช่น ภาษาสเปนใช้ site_faq_es.html; ตั้งค่า $faqfilelang = 'es' เมื่อต้องเลือกภาษาอย่างชัดเจน เก็บไฟล์แปลที่สมบูรณ์สำหรับแต่ละภาษาที่รองรับ
สำหรับการเปลี่ยนแปลงอินเทอร์เฟซแบบสั้น ให้ใช้ $vocab_override[LANG][TOKEN] ใน config.inc.php แทนการแก้ไข web/lang/lang.* ช่องฐานข้อมูลที่กำหนดเองใช้โทเค็น เช่น entry.catering
ดู issue #2432 และ ข้อความและคำแปล
รายงาน หลายไซต์ และการปรับแต่ง¶
งานที่กำหนดเวลาไว้สามารถส่งออกรายงานหรือข้อมูล iCalendar ได้อย่างไร¶
รายงาน GET ที่ไม่ได้รับอนุญาตจะถูกปิดใช้งานตามค่าเริ่มต้น หากข้อมูลอาจถูกเปิดเผยในลักษณะนี้ ให้เปิดใช้งานโดยเจตนาและจำกัดด้วย:
$report_unauthenticated_get_enabled = true;
$report_keys_enabled = true;
$report_keys = ['a-long-random-secret'];
$report_open_areas = [1];
$report_open_rooms = [];
ใช้คีย์ที่คาดเดาไม่ได้ รายการพื้นที่/ห้องที่อนุญาต HTTPS และตัวกำหนดเวลาที่ได้รับการป้องกัน ทดสอบผลลัพธ์ที่แน่นอนขณะออกจากระบบ URL ของรายงานเป็นข้อมูลรับรองที่มีประสิทธิภาพและอาจรั่วไหลผ่านบันทึกหรือประวัติได้
ดู issue #3742 และ ค้นหาและรายงาน
ไซต์ MRBS หลายไซต์สามารถแชร์ตารางชุดเดียวได้หรือไม่¶
ไม่ ไม่ใช่ หากการจองและการตั้งค่าต้องแยกจากกัน แต่ละไซต์ต้องมีตาราง MRBS ของตัวเอง ทั้งในฐานข้อมูลแยกต่างหากหรือมี $db_tbl_prefix ที่ไม่ซ้ำกันในฐานข้อมูลที่ใช้ร่วมกัน สามารถใช้รหัสร่วมกันได้ แต่ชุดตารางต้องไม่ทับซ้อนกัน
สร้างตารางของทุกไซต์ด้วยสคริปต์สคีมา MRBS และใช้คำนำหน้าอย่างสม่ำเสมอ ดู issue #3917 และ หลายไซต์
ทุกมุมมองหรือธีมที่ร้องขอพร้อมใช้งานผ่านการกำหนดค่าหรือไม่¶
ไม่ คำขอต่างๆ เช่น การแทรกข้อความเกี่ยวกับห้องเพิ่มเติมในรูปแบบปฏิทินเฉพาะ การเชื่อมโยงการจองแยกกัน การเพิ่มระดับการเข้าถึง หรือการเปลี่ยนสถาปัตยกรรมของธีม อาจจำเป็นต้องเปลี่ยนแปลงรหัส ก่อนที่จะใช้แพตช์จากปัญหาการสนับสนุน:
- ตรวจสอบว่า 1.12.2 มีการตั้งค่าหรือจุดขยายอยู่แล้วหรือไม่
- เก็บการเปลี่ยนแปลงไว้ภายนอกไฟล์ที่สร้างขึ้นและผู้จำหน่าย
- เพิ่มการทดสอบสำหรับการสร้าง แก้ไข ลบ ความเป็นส่วนตัว และการอนุญาต และ
- บันทึกการปรับแต่งสำหรับการอัพเกรดครั้งถัดไป
ตัวอย่าง ได้แก่ ปัญหามุมมองที่กำหนดเอง #2223 และ คำขอธีม #22