콘텐츠로 이동

자주 묻는 질문

이 FAQ는 MRBS의 미해결 및 해결된 지원 Issue에서 반복적으로 제기된 질문을 정리한 것입니다. 답변은 MRBS 1.12.2를 기준으로 확인했습니다. 예전 Issue에 한 번 등장했다는 이유만으로 오래된 우회 방법을 포함하지는 않았습니다.

이 FAQ가 선정된 방법

검토에서는 다음 라벨 중 하나 이상이 포함된 문제를 다뤘습니다. 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에서도 유효한 답변을 제공할 수 있는 반복 질문만 수록했습니다. Issue 링크는 출처를 나타낼 뿐, 현재 설정 참조를 대신하지 않습니다.

설치 및 진단

빈 페이지 또는 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 opcode 캐시를 비우거나 다시 시작합니다.

config.inc.php 심층 분석 및 문제 해결을 참조하세요.

로그인 및 LDAP

사용자가 캘린더를 보기 전에 로그인하도록 요구하려면 어떻게 해야 합니까?

세트:

$auth['deny_public_access'] = true;

비공개 브라우저 창에서 로그아웃 상태의 화면을 확인하세요. 이 설정은 공개 캘린더 접근을 차단하지만, 인증 방식을 선택하거나 설정하지는 않습니다. Issue #3979 및 사용자 및 권한을 참조하세요.

MRBS에 PHP LDAP 확장 프로그램이 없다고 표시되는 이유는 무엇입니까?

웹 서버가 사용하는 PHP 실행 환경에 LDAP 확장 기능을 설치하거나 활성화한 다음 해당 서비스를 다시 시작하세요. 명령줄 PHP와 웹 서버의 PHP가 서로 다른 php.ini 파일을 읽을 수 있으므로, php -m 결과에만 의존하지 말고 웹 실행 환경을 확인해야 합니다. 정확한 패키지 이름과 재시작 명령은 운영 체제와 PHP 설치 방식에 따라 다릅니다.

문제 #1022 및 LDAP 인증를 참조하세요.

올바른 LDAP 기본 DN과 사용자 DN을 찾으려면 어떻게 해야 합니까?

조직 이름에서 디렉터리 트리를 추론하지 마세요. MRBS에서 사용할 동일한 서버, TLS 모드, 기본 DN, 검색 ID 및 사용자 이름 속성을 사용하여 LDAP 클라이언트(예: ldapsearch)로 쿼리하세요. Active Directory는 일반적으로 sAMAccountName를 사용합니다. OpenLDAP는 일반적으로 uid를 사용하지만 디렉터리 스키마는 신뢰할 수 있습니다.

최종 사용자 바인드와 별도로 검색 ID를 테스트하고 바인드 비밀번호를 게시하지 마십시오. 잘못된 DN이 문제 #1083의 근본 원인이었습니다.

LDAP 접근을 그룹으로 제한하려면 어떻게 해야 하나요?

$ldap_filter를 사용하여 사용자가 MRBS에 액세스할 수 있는 디렉토리를 결정하세요. 사용자 개체에 멤버십이 저장되는 Active Directory 레이아웃의 경우 필터는 memberof와 일치할 수 있습니다. 멤버십이 그룹 개체에 저장되는 OpenLDAP 스타일 레이아웃의 경우 $ldap_filter_base_dn, $ldap_filter_user_attr 및 적절한 $ldap_filter를 설정합니다.

디렉터리의 정확한 DN과 속성 이름을 사용하고, 허용된 계정과 거부된 계정을 테스트하고, 중첩된 그룹이 어떻게 작동하는지 확인하세요. 이러한 액세스 필터는 MRBS 관리자를 식별하는 $ldap_admin_group_dn와 별개입니다. 문제 #2033 및 LDAP 인증를 참조하세요.

LDAP 로그인이 작동합니다. 사용자가 MRBS 관리자가 아닌 이유는 무엇입니까?

$ldap_admin_group_dn이 설정되면 MRBS는 $auth['admin'] 대신 해당 그룹을 사용합니다. 확인:

  • 전체 그룹 DN
  • $ldap_group_member_attrib — memberof 기본적으로.
  • LDAP 검색 ID는 사용자의 멤버십 속성을 읽을 수 있습니다.
  • 디렉터리가 직접 또는 중첩된 멤버십을 반환하는지 여부.

보호된 테스트 환경에서만 일시적으로 LDAP 진단을 활성화하고 나중에 제거하십시오. 문제 #3943에서는 검색 ID가 초기에 필요한 그룹 정보를 읽을 수 없었습니다.

비밀번호 바인딩이 작동하는데 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';

검색 ID에 필요한 읽기 권한만 부여하세요. 비밀번호를 문서 루트 외부에 유지하고 보호된 설정 파일에서 비밀번호를 포함하세요. 문제 #3895를 참조하세요.

MRBS 하나 이상의 LDAP 디렉토리를 검색할 수 있나요?

그렇습니다. $ldap_host, $ldap_port, $ldap_base_dn 및 검색 속성을 포함한 많은 LDAP 설정이 배열일 수 있습니다. 하나의 배열 가능 LDAP 매개변수가 배열인 경우 모든 배열 가능 매개변수는 동일한 수의 요소(디렉터리당 하나씩)를 가져야 합니다.

각 디렉터리에 대한 로그인, 속성 조회, 액세스 필터 및 관리자 매핑을 테스트합니다. 문제 #3981 및 systemdefaults.inc.php의 LDAP 섹션을 참조하세요.

예약, 회의실 및 권한

사용자 정의 예약 필드가 하나의 예약에는 작동하지만 일련의 예약에는 작동하지 않는 이유는 무엇입니까?

예약용 사용자 정의 열은 entry와 repeat 두 테이블에 같은 이름, 형식, 길이, NULL 허용 여부 및 기본값으로 존재해야 합니다. 두 열을 하나의 스키마 변경으로 취급하세요.

문제 #3986 및 사용자 정의 필드를 참조하세요.

참가자 수가 회의실 수용 인원을 넘으면 예약할 수 없나요?

아니요. 방 capacity 값은 MRBS에 의해 표시되는 방 메타데이터입니다. 예약 참석자 수와 자동으로 비교되지 않습니다. 사이트에서 이 규칙을 시행해야 하는 경우 동일한 참가자 수 사용자 정의 필드를 entry 및 repeat에 추가한 다음 서버 측 유효성 검사를 구현하고 유지 관리하세요. 클라이언트측 검증만으로는 충분하지 않습니다.

등록 기능을 사용하면 이벤트 정원이 해당 이벤트의 등록 인원을 제한합니다. 적절한 크기의 회의실을 자동으로 선택하는 기능은 아닙니다. Issue #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에는 어떤 값을 사용해야 합니까?

운영 체제 로캘 문자열이 아닌 en, en-GB, de, fr 또는 es와 같은 BCP 47 언어 태그를 사용하세요. 서버에는 여전히 적합한 로케일 데이터가 있어야 합니다. Unix 계열 시스템에서 locale -a는 설치된 로케일을 표시합니다.

$override_locale를 비워두면 MRBS 자동 선택을 사용할 수 있습니다. 문제 #3984 및 텍스트 및 번역을 참조하세요.

표시된 시간이 정확히 1시간 틀리게 표시되는 이유는 무엇입니까?

순서대로 확인하세요.

  1. 방 및 영역 시간대;
  2. 글로벌 $timezone;
  3. PHP의 시간대 및 시간대 데이터 패키지;
  4. 해당 날짜의 일광 절약 시간제 전환.
  5. 저장된 타임스탬프가 잘못된 것인지, 아니면 표시만 잘못된 것인지.

고정된 UTC 오프셋이 아닌 Europe/Berlin와 같은 IANA 시간대를 사용하세요. 이전 문제에는 버전별 형식 지정 해결 방법이 언급되어 있습니다. $force_strftime는 MRBS 1.12.2의 설정이 아니므로 문제 #3967에서 복사하면 안 됩니다. 문제 해결를 참조하세요.

도움말 페이지와 인터페이스 텍스트를 어떻게 사용자 정의하거나 번역합니까?

애플리케이션 내 도움말 페이지는 web/site_faq/에서 로드됩니다. 예를 들어 스페인어에서는 site_faq_es.html을 사용합니다. 언어를 명시적으로 선택해야 하는 경우 $faqfilelang = 'es'를 설정하세요. 지원되는 각 언어에 대해 완전한 번역 파일을 보관하세요.

짧은 인터페이스 변경의 경우 web/lang/lang.*를 편집하는 대신 config.inc.php의 $vocab_override[LANG][TOKEN]를 사용하세요. 사용자 정의 데이터베이스 필드는 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 사이트가 하나의 테이블 세트를 공유할 수 있나요?

아니요, 예약과 설정이 분리되어야 하는 경우에는 그렇지 않습니다. 각 사이트에는 별도의 데이터베이스에 있거나 공유 데이터베이스에 고유한 $db_tbl_prefix가 있는 자체 MRBS 테이블이 필요합니다. 코드는 공유할 수 있지만 테이블 세트는 겹쳐서는 안 됩니다.

MRBS 스키마 스크립트를 사용하여 모든 사이트의 테이블을 생성하고 해당 접두사를 일관되게 적용합니다. 문제 #3917 및 멀티사이트을 참조하세요.

요청한 모든 보기 또는 테마를 설정을 통해 사용할 수 있습니까?

아니요. 특정 달력 레이아웃에 추가 회의실 텍스트 삽입, 독립적인 예약 연결, 액세스 수준 추가 또는 테마 아키텍처 교체와 같은 요청에는 코드 변경이 필요할 수 있습니다. 지원 문제에 대한 패치를 적용하기 전에:

  • 1.12.2에 이미 설정 또는 확장 지점이 있는지 확인하십시오.
  • 생성된 파일과 공급업체 파일 외부에 변경 사항을 유지합니다.
  • 생성, 편집, 삭제, 개인 정보 보호 및 권한에 대한 테스트를 추가합니다.
  • 다음 업그레이드를 위해 사용자 정의를 기록합니다.

예에는 사용자 정의 보기 문제 #2223 및 테마 요청 #22이 포함됩니다.