常見問題¶
本 FAQ 彙整了 MRBS 已開啟和已關閉支援 issues 中反覆出現的問題。答案已針對 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。
截至 2026 年 7 月 26 日,僅support request標籤就包含 3,076 個 issue: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 與控制面板值一致。僅在連線成功後才建立架構。請參閱問題#3801和安裝。
為什麼設定更改沒有效果?¶
檢查您是否編輯了此部署和網站載入的 config.inc.php。後來被指派的值會覆寫之前的值。為現有區域儲存的設定存在於資料庫中;變更 areadefaults.inc.php 僅變更新區域的預設值。在多網站模式下,確認所選網站及其設定。最後,在適用的情況下清除或重新啟動 PHP 操作碼快取。
登入並LDAP¶
如何要求使用者在看到日曆之前先登入?¶
設定:
請在瀏覽器的隱私視窗中測試未登入使用者看到的頁面。此設定會阻止存取公開日曆,但不會選擇或設定身分驗證方法。請參閱問題 #3979和使用者和權限。
為什麼MRBS說缺少PHPLDAP副檔名?¶
在 Web 伺服器使用的 PHP 環境中安裝或啟用 LDAP 擴充功能,然後重新啟動該環境。命令列 PHP 和 Web 伺服器的 PHP 可能載入不同的 php.ini 檔案,因此應檢查 Web 環境,不能只依賴 php -m。實際的套件名稱和重新啟動命令取決於作業系統和 PHP 安裝方式。
如何找到正確的 LDAP 基本 DN 和使用者 DN?¶
不要從組織名稱推斷目錄樹。使用LDAP客戶端(例如ldapsearch)進行查詢,使用MRBS將使用的相同伺服器、TLS模式、基本DN、搜尋身分和使用者名稱屬性。 Active Directory常用sAMAccountName; OpenLDAP通常使用uid,但目錄模式是權威的。
將搜尋身分與最終使用者綁定分開測試,並且切勿發布綁定密碼。錯誤的 DN 是 問題 #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 管理員。請參閱問題#2033和LDAP認證。
LDAP 登入有效;為什麼使用者不是MRBS管理員?¶
設定 $ldap_admin_group_dn 時,MRBS 使用該組而不是 $auth['admin']。確認:
- 完整的組別 DN;
- 預設為
$ldap_group_member_attrib—memberof; - LDAP搜尋身分可以讀取使用者的會員屬性;和
- 目錄是否傳回直接成員資格或嵌套成員資格。
僅在受保護的測試環境中暫時啟用LDAP診斷,然後將其刪除。在問題#3943中,搜尋身分最初無法讀取所需的群組資訊。
儘管密碼綁定有效,為什麼在MRBS升級後LDAP會失敗?¶
目前 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';
僅向搜尋標識授予其所需的讀取權限。將其密碼保留在文件根目錄之外,並將其包含在受保護的設定檔中。請參閱問題#3895。
MRBS可以搜尋多個LDAP目錄嗎?¶
是的。許多LDAP設置,包括$ldap_host、$ldap_port、$ldap_base_dn和搜尋屬性,都可以是陣列。如果一個支援數組的 LDAP 參數是一個數組,則每個支援數組的參數必須具有相同數量的元素,每個目錄一個。
測試每個目錄的登入、屬性查找、存取過濾器和管理員對映。請參閱問題#3981 和systemdefaults.inc.php 中的LDAP 部分。
預訂、會議室/設備和權限¶
為什麼自訂預訂欄位適用於一次預訂但不適用於一系列預訂?¶
每個自訂預訂欄位必須同時存在於 entry 和 repeat 表中,且具有相同的名稱、類型、長度、可為空性和預設值。將兩列視為一個架構變更。
會議室/設備容量是否會妨礙預訂過多的參與者?¶
否,會議室/設備capacity值為MRBS顯示的會議室/設備元資料;它不會自動與預訂的與會者人數進行比較。如果網站必須強制執行此規則,請將相同的參與者計數自訂欄位新增至 entry 和 repeat,然後實施和維護伺服器端驗證。僅客戶端驗證是不夠的。
如果啟用註冊,則其事件容量控制該事件的註冊;它不會自動選擇大小合適的會議室/設備。請參閱 問題 #1055、區域和會議室/設備 和 自訂欄位。
一個區域可以在早上使用 30 分鐘的時段,然後再使用 15 分鐘的時段嗎?¶
不通過標準區域設定。一個區域只有一次解析度。使用全天所需的最小分辨率,或在資源和營運模型允許的情況下創建單獨的區域。與時間相關的解決方案需要維護程式碼客製化。
請參閱問題 #4011。
為什麼預訂建立者看不到「編輯」或「刪除」?¶
透過會議室/設備查看現有區域的預訂政策。過去預訂的提前/未來編輯限制和規則甚至可以從創建者那裡刪除這些操作。也要確認登入身分、所有權、管理員狀態以及該項目是單次出現還是一系列出現。
更改 areadefaults.inc.php 不會更新現有區域。請參閱問題#3994和預訂政策。
多會議室/設備預訂中選擇的會議室/設備是否永久連結?¶
MRBS 建立單獨的預訂條目。如果其中一個群組後來被編輯或刪除,則其他群組就不是持久連結群組。不要將所有選定會議室/設備的生成清單複製到每個描述中,除非網站在建立、編輯和刪除操作過程中也維護該清單。
請參閱問題#2223。
我可以添加更多存取等級或僅授予自訂角色報告存取權限嗎?¶
標準 MRBS 使用存取等級 0、1 和 2。其他數位角色和頁面特定權限需要在每次升級後進行本地授權自訂、測試和審核。舊問題的補丁不是受支援的設定選項。
在滿足要求的情況下,偏好標準區域/會議室/設備授權和具有狹窄許可名單的公開報告。請參閱問題#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 當預訂者收到通知時,使用者需要可讀且正確對應的電子郵件屬性。然後分別測試建立、編輯和刪除事件。
我應該為 $override_locale 使用哪個值?¶
使用 BCP 47 語言標記,例如 en、en-GB、de、fr 或 es,而不是作業系統區域設定字串。伺服器仍必須具有適當的區域設定資料。在類 Unix 系統上,locale -a 顯示已安裝的區域設定。
將 $override_locale 留空以使用 MRBS 自動選擇。請參閱問題#3984和文字和翻譯。
為什麼顯示的時間剛好錯誤一小時?¶
按順序檢查:
- 會議室/設備和區域時區;
- 全球
$timezone; - PHP的時區和時區資料包;
- 受影響日期的夏令時過渡;和
- 儲存的時間戳或僅顯示的時間戳記是否錯誤。
使用 IANA 時區,例如 Europe/Berlin,而不是固定的 UTC 偏移量。老問題提到了特定於版本的格式化解決方法; $force_strftime 不是 MRBS 1.12.2 中的設置,不得從 問題#3967 複製。請參閱故障排除。
如何自訂或翻譯幫助頁面和介面文字?¶
應用程式內幫助頁面從web/site_faq/載入。例如,西班牙語使用site_faq_es.html;必須明確選擇語言時設定$faqfilelang = 'es'。為每種支援的語言保留完整的翻譯文件。
對於簡短的介面更改,請在config.inc.php中使用$vocab_override[LANG][TOKEN],而不是編輯web/lang/lang.*。自訂資料庫欄位使用諸如entry.catering之類的標記。
報告、多網站和定制¶
計畫作業如何匯出報表或 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 實際上是一種憑證,可能會透過日誌或歷史記錄洩露。
多個MRBS網站可以共享一組表嗎?¶
不,如果他們的預訂和設置必須分開,則不行。每個網站都需要自己的 MRBS 表,可以在單獨的資料庫中,也可以在共享資料庫中具有唯一的 $db_tbl_prefix。程式碼可以共享,但表集不能重疊。
使用 MRBS 架構腳本建立每個網站的表並一致地應用其前綴。請參閱問題#3917和多網站。
每個請求的視圖或主題是否都可以透過設定來獲得?¶
不需要。諸如將附加會議室/設備文字插入特定日曆佈局、連結其他獨立預訂、新增存取等級或替換主題架構等請求可能需要更改程式碼。在應用支援問題的補丁之前:
- 檢查1.12.2是否已有設定或擴充點;
- 將更改保留在生成文件和供應商文件之外;
- 新增對建立、編輯、刪除、隱私和權限的測試;和
- 記錄下定制以便下次升級。
例如 自訂視圖問題 #2223 和 主題請求#22。