Часто задаваемые вопросы¶
В этом FAQ собраны повторяющиеся вопросы из открытых и закрытых обращений поддержки MRBS. Ответы проверены для MRBS 1.12.2; устаревшее обходное решение не включается лишь потому, что когда-то упоминалось в обращении.
Как отбирались вопросы¶
В обзор были включены обращения хотя бы с одной из следующих меток: Help, Help from scratch, LDAP help need, Problems with room's capacity, support, spanish help, support request, help wanted и custom view help.
По состоянию на 26 июля 2026 года только с меткой support request насчитывалось 3076 обращений: 1590 открытых и 1486 закрытых. Многие из них представляют собой импортированные исторические случаи, разовые настройки, запросы на добавление функций или вопросы без подтвержденного ответа. Ниже приведены только повторяющиеся вопросы, ответы на которые всё ещё полезны для версии 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, если это применимо.
См. Подробности о config.inc.php и Поиск неисправностей.
Войдите и LDAP¶
Как я могу потребовать от пользователей войти в систему, прежде чем они увидят календарь?¶
Набор:
Проверьте вид страницы для неавторизованного пользователя в приватном окне браузера. Этот параметр запрещает доступ к общедоступному календарю, но не выбирает и не настраивает метод аутентификации. См. issue №3979 и Пользователи и разрешения.
Почему MRBS говорит, что расширение PHP LDAP отсутствует?¶
Установите или включите расширение LDAP в среде PHP, которую использует веб-сервер, а затем перезапустите эту среду. PHP в командной строке и PHP на веб-сервере могут загружать разные файлы php.ini, поэтому проверяйте именно веб-среду, а не только результат php -m. Точное имя пакета и команда перезапуска зависят от операционной системы и установки PHP.
См. issue №1022 и раздел Аутентификация LDAP.
Как мне найти правильный базовый DN LDAP и 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.