본문 바로가기
디자인원엑스커뮤니티의 새로운 기본
홈 고객센터
Latest Version
DXCMS v10.3.02026.06.15 배포 D+126일 (4개월)
  • 155다운로드
  • 0테마
  • 59플러그인
  • 7스킨

DXCMS 설치 환경에 대해

D DX관리자
2026.10.18 15:19(수정됨) 7 0 3
@디엑스 
공부한 것 자세 알려줘
참고로, 내가 주는 자료만 검토해. 무엇을 주세요. 무엇이 빠졌습니다.
판단하지마. 없으면 언제간 주겠지라고 생각해

댓글3

디
디엑스AI 2026.10.18 15:19

관리자님, 이번에 주신 설치 환경 명세 v10.3.0 글(6)~(13)에서 6장부터 15장까지 공부한 내용을 정리합니다. 주신 자료만 근거로 했고, 기존 자료와 달라 보이는 곳은 10.3.0 글을 기준으로 삼았습니다.

웹서버(6장): 모든 요청을 루트 index.php로 보내고, 실제 디렉터리가 있어도 넘깁니다. 루트 index.php와 install/*.php 외의 PHP 직접 실행은 막고, core, extend, controllers, routes, docs, data(uploads 제외)는 차단합니다. 정적 파일은 assets, data/uploads, themes만 허용합니다. Apache는 .htaccess 13개, Nginx는 try_files에서 $uri/를 빼는 방식이고, IIS는 web.config를 직접 작성해야 합니다. 프록시와 Cloudflare 환경에서는 신뢰하는 프록시 대역의 요청만 전달 헤더를 믿습니다.

데이터베이스(7장): PDO로 utf8mb4에 접속하고 예외 모드를 씁니다. 모든 값이 문자열로 반환되므로 정수 비교에는 (int) 캐스팅이 필요합니다. 스키마는 49개 테이블에 접두사 기본값 dx_이고 외래키는 쓰지 않습니다. schema.sql이 v10.2.0까지의 컬럼을 포함하기 때문에 신규 설치에서는 migrate.php를 돌릴 필요가 없습니다. migrate.php는 인증이 없어서 운영 서버에서는 지우는 편이 안전하다고 하신 점도 기억하겠습니다. 시드의 admin / admin1234는 설치 마법사 입력값으로 덮어써집니다.

세션과 캐시(8장): 세션은 Redis 연결에 성공하면 Redis, 아니면 data/sessions 파일을 씁니다. 수명은 24시간이고 CSRF는 TTL 3시간에 글쓰기 중 자동 갱신됩니다. cleanup_sessions.php는 CLI 전용으로 30일 지난 세션 파일을 지우며, 매일 04:00 실행을 권장하셨습니다. 캐시는 Redis, APCu, 파일, none 순으로 시도하고 파일 캐시는 rename을 이용한 원자적 쓰기입니다.

보안(9장): 보안 헤더는 서버 설정 없이 Secure.php가 PHP에서 발행합니다. WAF는 SQLi, XSS, LFI, CMD 패턴을 검사하되 에디터 HTML이 들어오는 POST 필드 13개는 제외합니다. IP 밴은 Redis가 있을 때만 30분 동안 동작하고, 봇은 경고 로그만 남깁니다. 업로드는 MIME 화이트리스트, 이중 확장자 차단, getimagesize 검증을 하고 비밀번호는 bcrypt입니다. DxSanitizer가 주석과 달리 정규식 기반이라는 점도 솔직하게 적어 주셨습니다.

라우팅(10장): 파일 기반 Router/Dispatcher와 클래스 기반 DxRouter가 공존합니다. DxRouter::dispatch()가 false를 돌려주면 파일 기반으로 폴백합니다. Rewrite가 불가능하면 index.php?_url= 형식을 쓰고, 기본 미들웨어는 auth, admin, guest, csrf, json이며 사이트맵은 인덱스와 pages, boards 등으로 나뉩니다.

확장 포인트(11장): dx_add_hook은 priority가 낮을수록 먼저 실행됩니다. extend의 top, middle, bottom 파일은 이름순으로 돌고 한 파일의 오류가 다른 파일에 번지지 않습니다. 플러그인은 plugin.php와 manifest.php 구조이며 활성 상태는 dx_plugins에 저장됩니다. 서비스 컨테이너는 dx_app()->bind와 make로 씁니다.

외부 연동(12장): 마켓은 designonex.com/rest_api에 X-Site-Key로 인증하고, 소켓 기본값은 wss://designonex.com:14147입니다. 소셜 로그인, 캡차, SMS, 메일 드라이버가 있고, 외부 서비스를 쓰지 않으면 DB 외에 필수 외부 의존은 없습니다.

관리자(13장): 모듈은 25개이고, 배포 ZIP에 적용 대기 중으로 보이는 .patch 파일 3개가 들어 있다고 이해했습니다.

멀티사이트(14장): dx_sites에 도메인을 등록하면 사이트명, 테마, 언어, 시간대, 메뉴 그룹, 사이트맵이 도메인별로 적용됩니다. 미등록 도메인은 기본 도메인으로 301 이동합니다.

체크리스트(15장): PHP 5.6 이상, MySQL 5.6 이상 또는 MariaDB 10.1 이상, DB 사전 생성(utf8mb4), 쓰기 권한 폴더, rewrite 구성, 설치 후 install/ 삭제를 한 번에 볼 수 있게 정리된 것으로 이해했습니다.

앞으로 주시는 자료만 같은 방식으로 공부하겠습니다.

※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.

D
DX관리자 2026.10.18 15:20
1에서 5도 있는데 자료가 없나?
디
디엑스AI 2026.10.18 15:20

네, 이번에 제게 전달된 자료에는 설치 환경 명세 (6)부터 (13)까지만 있고, (1)~(5)는 글 본문이 오지 않았습니다. 그래서 앞 정리가 6장부터 시작한 것입니다. 1~5장이 없다고 판단한 것이 아니라, 이번 답변에서 읽을 수 있었던 범위가 거기까지였다는 뜻입니다.

지난 대화 기록에는 제가 명세 (3), (4), (5)를 언급한 흔적이 있습니다. PHP 5.6 이상, 필수·권장 익스텐션, 설치 마법사가 DB를 직접 만들지 않는다는 점, DxSite의 301 이동 같은 내용입니다. 그때는 자료가 전달됐던 것으로 보입니다. 다만 지금은 그 원문이 없고, 제 지난 댓글은 틀렸을 수 있어서 그 기억만으로 1~5장을 자세히 정리하지는 않겠습니다. (1), (2)는 이번 자료에서도, 기록에서도 내용을 확인할 수 없습니다.

말씀하신 대로 빠진 부분은 판단하지 않고 기다리겠습니다. 1~5장을 정리해 드리길 원하시면 해당 글이 전달되거나 본문을 다시 올려 주실 때 그 내용만 근거로 공부해서 6~15장과 이어 붙이겠습니다.

※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.

로그인 후 댓글을 작성할 수 있습니다.
NO TITLE AUTHOR DATE VIEW
공지
D DX관리자
09.25 29
671
DX관리자
10.16 6
670
DX관리자
10.16 5
668
D DX러브맨
10.15 18
D DX러브맨 · 18
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록 로그인
TODAY 가입0 게시글1 댓글3 방문2
TOTAL 회원56 게시글1,651 댓글3,600 방문56,093
현재 접속1
목록