跳轉至

常見問題

本 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錯誤日誌。空白頁只是可見的症狀;有用的錯誤通常在日誌中。然後檢查:

  1. 支援的PHP版本和所需的擴展;
  2. config.inc.php 與 php -l config.inc.php;
  3. 資料庫連接和匹配的PDO驅動程式;
  4. 文件權限和活動的PHP設定;和
  5. 失敗的請求是否到達預期的 MRBS 安裝。

不要在生產系統上啟用公共 PHP 錯誤顯示,也不要將憑證貼到問題中。請參閱故障排除。原始的支持案例#1007沒有經過確認的特定於產品的修復,這就是為什麼這個答案從本地日誌的證據開始。

為什麼在 cPanel 或共享主機上資料庫登入失敗?

使用託管控制面板建立的確切資料庫和使用者名稱。 cPanel 通常會在兩者前面加上託管帳戶名稱前綴。也要驗證使用者是否具有該資料庫的權限。 SQLSTATE[28000] 或「使用者拒絕存取」是資料庫驗證或授權錯誤,而不是 MRBS 表錯誤。

保持 $db_database、$db_login 和 $db_password 與控制面板值一致。僅在連線成功後才建立架構。請參閱問題#3801和安裝。

為什麼設定更改沒有效果?

檢查您是否編輯了此部署和網站載入的 config.inc.php。後來被指派的值會覆寫之前的值。為現有區域儲存的設定存在於資料庫中;變更 areadefaults.inc.php 僅變更新區域的預設值。在多網站模式下,確認所選網站及其設定。最後,在適用的情況下清除或重新啟動 PHP 操作碼快取。

請參閱深入了解 config.inc.php和故障排除。

登入並LDAP

如何要求使用者在看到日曆之前先登入?

設定:

$auth['deny_public_access'] = true;

請在瀏覽器的隱私視窗中測試未登入使用者看到的頁面。此設定會阻止存取公開日曆,但不會選擇或設定身分驗證方法。請參閱問題 #3979和使用者和權限。

為什麼MRBS說缺少PHPLDAP副檔名?

在 Web 伺服器使用的 PHP 環境中安裝或啟用 LDAP 擴充功能,然後重新啟動該環境。命令列 PHP 和 Web 伺服器的 PHP 可能載入不同的 php.ini 檔案,因此應檢查 Web 環境,不能只依賴 php -m。實際的套件名稱和重新啟動命令取決於作業系統和 PHP 安裝方式。

請參閱問題#1022和LDAP認證。

如何找到正確的 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 表中,且具有相同的名稱、類型、長度、可為空性和預設值。將兩列視為一個架構變更。

請參閱問題#3986和自訂欄位。

會議室/設備容量是否會妨礙預訂過多的參與者?

否,會議室/設備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 當預訂者收到通知時,使用者需要可讀且正確對應的電子郵件屬性。然後分別測試建立、編輯和刪除事件。

請參閱問題#3795和電子郵件通知。

我應該為 $override_locale 使用哪個值?

使用 BCP 47 語言標記,例如 en、en-GB、de、fr 或 es,而不是作業系統區域設定字串。伺服器仍必須具有適當的區域設定資料。在類 Unix 系統上,locale -a 顯示已安裝的區域設定。

將 $override_locale 留空以使用 MRBS 自動選擇。請參閱問題#3984和文字和翻譯。

為什麼顯示的時間剛好錯誤一小時?

按順序檢查:

  1. 會議室/設備和區域時區;
  2. 全球$timezone;
  3. PHP的時區和時區資料包;
  4. 受影響日期的夏令時過渡;和
  5. 儲存的時間戳或僅顯示的時間戳記是否錯誤。

使用 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之類的標記。

請參閱問題#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 實際上是一種憑證,可能會透過日誌或歷史記錄洩露。

請參閱問題#3742和搜尋和報告。

多個MRBS網站可以共享一組表嗎?

不,如果他們的預訂和設置必須分開,則不行。每個網站都需要自己的 MRBS 表,可以在單獨的資料庫中,也可以在共享資料庫中具有唯一的 $db_tbl_prefix。程式碼可以共享,但表集不能重疊。

使用 MRBS 架構腳本建立每個網站的表並一致地應用其前綴。請參閱問題#3917和多網站。

每個請求的視圖或主題是否都可以透過設定來獲得?

不需要。諸如將附加會議室/設備文字插入特定日曆佈局、連結其他獨立預訂、新增存取等級或替換主題架構等請求可能需要更改程式碼。在應用支援問題的補丁之前:

  • 檢查1.12.2是否已有設定或擴充點;
  • 將更改保留在生成文件和供應商文件之外;
  • 新增對建立、編輯、刪除、隱私和權限的測試;和
  • 記錄下定制以便下次升級。

例如 自訂視圖問題 #2223 和 主題請求#22。