DXCMS v10.2.3 패치 노트
릴리즈 버전: v10.2.3
기준 버전: v10.2.0
작성일: 2026-10-06
1. 레벨 방식 — 자동 / 수동 (level-auto)
대상 파일
core/DxPoint.phpadmin/levels/index.phpadmin/members/index.php
변경 내용
- 관리자 > 레벨 관리 상단에 레벨 방식: 자동 / 수동 선택 추가 (
dx_settings.level_auto, 기본값 자동)- 자동: 기존과 동일 — 경험치가 쌓이면 레벨표에 따라 자동으로 레벨 결정
- 수동: 경험치는 계속 쌓이지만 레벨은 바뀌지 않음 — 회원 관리에서 직접 지정
- 수동 → 자동으로 바꾸면 각 회원이 다음에 경험치를 받을 때 경험치 기준 레벨로 자연스럽게 맞춰짐
DxPoint::isAutoLevel()신설 — 설정 로드 전(외부 스크립트 등)에는 기존 동작(자동)으로 처리- 관리자 > 회원 관리 > 수정에 레벨 입력 칸 추가 (현재 경험치 함께 표시, 최고 레벨 이하로 제한)
- 설정을 바꾸지 않은 기존 사이트는 동작 변화 없음
- 검증: 자동 +500 → Lv.1→4, 수동 전환 후 +5000 → Lv.4 유지, 다시 자동 후 +1 → 경험치 기준 Lv.9
2. 소켓 채팅 — 테마별 표시 (socket-chat-theme)
대상 파일
plugins/dx-socket/plugin.phpadmin/socket/index.php
변경 내용
- 관리자 > 소켓 > 채팅 설정에 채팅 표시 테마 선택 추가 (
plugin_dx-socket_chat_themes, 쉼표 구분 테마 폴더명)- 체크한 테마를 쓰는 사이트에서만 채팅 아이콘·채팅창 표시
- 아무것도 체크하지 않으면 모든 테마에서 표시 (기존과 동일)
- 테마 목록은
themes/*/layout/main.php가 있는 폴더를 자동 검색,theme.json의 이름 표시, 현재 사이트 테마는 강조 표시
- 해당 테마가 아니면 채팅 UI 만 끄고 소켓 연결(알림·접속자 등)은 그대로 유지
- 멀티사이트에서 사이트마다 다른 테마를 쓰는 경우, 사이트별로 채팅 표시 여부가 자동으로 갈림
- 저장 시 테마 폴더명 검증(영문·숫자·
_·-만, 실제 존재하는 테마만), 채팅 설정 영역이 없는 화면에서 저장해도 기존 값 유지
3. nginx 설정 예시 보강 (nginx-conf)
대상 파일
nginx.conf.example
변경 내용
- PHP-FPM 주소를 한 줄로:
upstream블록 대신 server 안의set $dx_php …;한 줄 → aaPanel·BT 등 서버 패널의 사이트 설정 칸(server 블록 안쪽)에 그대로 붙여 넣기 가능 (기존upstream은 server 바깥 문법이라 패널에서 PHP 연결이 깨져 다운로드 창·오류 화면이 나오던 문제) - 배포판별 소켓 경로 안내: Ubuntu/Debian, CentOS/Rocky, aaPanel·BT
unix:/tmp/php-cgi-83.sock, TCP - 패널 사용자 보안 안내: 패널이 넣은
include enable-php-XX.conf;를 주석 처리 → 그대로 두면 패널의 PHP 규칙이 먼저 걸려core/등 내부 PHP 파일이 외부에서 실행됨 (재현 확인) client_max_body_size 50m— 기본 1MB 로 첨부·프로필 이미지·플러그인 ZIP 이 413 오류- Let's Encrypt
/.well-known/acme-challenge/허용 — 숨김 파일 차단 규칙에 막혀 인증서 발급 실패 - 내부 폴더 차단 (Apache
.htaccess와 동일):core,extend,controllers,routes,docs·install/*.sql charset_types— 분리된 CSS·JS 도 UTF-8 로 전송install/마이그레이션 시간 제한 300초- 인증서 없는 HTTP 전용 사이트가 기본 — HTTPS 443 블록은 주석 상태(인증서 있을 때만 해제)
- 검증: 실제 nginx + PHP-FPM 에서 설치 → 마이그레이션 → 사이트·관리자 12개 화면, 하위 요청 실패 0건
적용 방법
| 순서 | 압축 | 비고 |
|---|---|---|
| 1 | dxcms-level-auto.zip |
3개 파일 |
| 2 | dxcms_socket-chat-theme.zip |
2개 파일 |
| 3 | dxcms-nginx-conf.zip |
예시 파일 — 운영 중인 사이트에는 영향 없음 |
| 4 | version.php → return '10.2.3'; |
- 세 압축은 서로 겹치는 파일이 없음
- DB 구조 변경 없음 — 새 설정은
dx_settings에 저장되고 값이 없으면 기존 동작 install/migrate.php실행은 선택 사항 (cms_version을 10.2.3 으로 기록하려면 실행)- 모두 PHP·예시 파일이라 브라우저 캐시 영향 없음
변경 파일 전체 목록 (v10.2.3)
| 파일 | 패치 |
|---|---|
version.php |
10.2.3 |
core/DxPoint.php |
레벨 방식 자동/수동 (isAutoLevel()) |
admin/levels/index.php |
레벨 방식 선택 화면·저장 |
admin/members/index.php |
회원 레벨 직접 지정 |
plugins/dx-socket/plugin.php |
채팅 표시 테마 적용 |
admin/socket/index.php |
채팅 표시 테마 선택 화면·저장 |
nginx.conf.example |
패널 호환 · 업로드 · SSL · 내부 폴더 차단 · HTTP 기본 |
DXCMS — Copyright (C) 2026 designonex [디자인원엑스]
License: GNU Lesser General Public License v3.0 (LGPL-3.0)