0.2.3 — 신규 설치 버그 2건 + 서브디렉토리 리다이렉트 수정
요약
신규 설치 환경에서 발견된 버그 2건과 서브디렉토리 설치의 리다이렉트 404 버그를 수정한 패치입니다.
변경 사항
설치 직후 설정관리>업데이트 Fatal 수정
- 신규 설치 후 관리자 설정관리>업데이트 진입 시
Call to a member function fetch() on boolFatal 에러(setting.lib.php)가 나던 문제를 수정했습니다. - 원인:
setting_sync()의 테이블 존재 확인이sql_pdo_query()가 예외를 던진다는 잘못된 가정의 try/catch 여서, 테이블이 없어도 "있다"로 판정되어g5_setting테이블 생성을 건너뛰었습니다. SHOW TABLES기반 존재 확인으로 교체 — 이제 첫 진입 시 테이블이 자동 생성되고 설정 기본값이 채워집니다. 수동으로 테이블을 만들 필요가 없습니다.
MySQL 비밀번호 없이 설치 허용
- Windows 로컬 등 root 계정에 비밀번호가 없는 MySQL 환경에서 설치 시 "잘못된 요청입니다"로 막히던 문제를 수정했습니다.
- 설치 확인 단계에서 비밀번호를 필수 입력에서 제외하고, 보안 토큰 오류("잘못된 요청")와 입력 누락("MySQL 접속 정보를 모두 입력해 주십시오") 메시지를 분리해 안내를 명확히 했습니다.
서브디렉토리 설치에서 Location 리다이렉트 base path 자동 보정 (#2)
- 서브디렉토리(
/g5se등) 설치 시header('Location: /admin/setting')같은 루트상대 리다이렉트가 base path 를 잃고 도메인 루트로 튕겨 Apache 404 가 나던 문제를 수정했습니다. (설정 화면 [⟳ 업데이트] 버튼 → Not Found) - HTML 의 href/src/action 은 출력버퍼 필터가 base path 를 붙여주지만
Location:헤더는 그 대상이 아니어서 우회되던 것이 원인입니다. index.php에header_register_callback안전망을 추가해 루트상대 Location 헤더에 설치 기준 경로를 자동으로 붙이고, 관리자 페이지의 bare/admin/*리다이렉트를 base-path 인식 상수(G5_ADMIN_URL)로 교체했습니다.
검증
setting_sync(): 로컬 실 DB에서 테이블 부재 상태로 Fatal 재현 → 수정 후 테이블 자동 생성·기본값 삽입·2회 실행 멱등성 확인- 설치 확인 단계: 클라이언트 JS와 실제 설치 단계(
install_db.php)는 기존부터 빈 비밀번호를 허용하고 있어 서버 검증 한 곳만 수정 - 수정 파일
php -l통과