회원가입 | 고객센터 |
DESIGNONEX
디자인원엑스
About
Service
Q&A
PR리그
자유게시판N
갤러리
포인트게임
공지사항N
통계
로그인 회원가입
고객센터
2. 시작 가이드

설치 환경 (PHP 버전, 서버 환경)

A Administrator
2026.04.20 23:56(수정됨) 100 0

1. 시스템 요구사항 요약

DXCMS Board v8.0.3은 PHP 5.6부터 PHP 8.x까지, 그리고 IIS • Apache • Nginx • 저가형 공유호스팅 환경을 완전 지원합니다. Windows와 Linux 모두 호환됩니다.
 
항목 최소 요구사항 권장 사항 비고
PHP 버전 PHP 5.6 PHP 8.1 이상 8.x에서 성능 대폭 향상
데이터베이스 MySQL 5.6 / MariaDB 10.1 MySQL 8.0 / MariaDB 10.6+ FULLTEXT 인덱스 InnoDB 지원 필수
웹 서버 IIS 7.0+, Apache 2.2+, Nginx 1.x 최신 버전 권장 URL Rewrite 없어도 동작
운영체제 Windows / Linux Ubuntu 20.04+ / CentOS 7+ Windows(IIS) 완전 지원
메모리 (PHP) 64MB 256MB 이상 memory_limit 설정
디스크 50MB (코어) 1GB 이상 업로드 파일 고려
문자셋 UTF-8 utf8mb4 DB 및 PHP 모두 UTF-8


2. PHP 버전 및 익스텐션 요구사항

2.1 PHP 버전별 지원 현황

PHP 버전 지원 여부 특이사항
PHP 5.6 ✅ 완전 지원 (최소 요구) ?? 연산자 미사용, closure 제한 우회 적용됨
PHP 7.0 ~ 7.4 ✅ 완전 지원 성능 및 타입 안전성 향상
PHP 8.0 ✅ 완전 지원 JIT 컴파일러 활성화 가능
PHP 8.1 ✅ 완전 지원 (권장) Fibers, Readonly Properties 활용
PHP 8.2 ~ 8.3 ✅ 완전 지원 최신 버전, 최고 성능
PHP 5.5 이하 ❌ 미지원 password_hash() 미지원으로 동작 불가

⚠ PHP 5.6은 2018년 12월 공식 지원 종료(EOL)되었습니다. 저가형 공유호스팅 호환을 위해 지원하지만, 보안을 위해 PHP 8.x 사용을 강력 권장합니다.


2.2 PHP 익스텐션 요구사항

필수 익스텐션 (없으면 설치 불가)
익스텐션 확인 방법 용도 기본 포함 여부
pdo_mysql extension_loaded('pdo_mysql') MySQL/MariaDB PDO 연결 대부분 기본 포함
json extension_loaded('json') JSON 인코드/디코드, 설정 저장 PHP 5.2+ 기본 포함
session (기본 내장) 로그인 세션 관리 PHP 기본 내장
pcre (기본 내장) URL 파싱, 보안 패턴 검사 PHP 기본 내장
hash (기본 내장) SHA-256 해시, 보안 경로 생성 PHP 기본 내장

권장 익스텐션 (없으면 일부 기능 제한)
익스텐션 용도 없을 때 동작
openssl CSRF 토큰 안전 난수 생성, HTTPS 연결 mt_rand() 폴백 (보안 강도 낮음)
mbstring 한국어 문자열 처리, 멀티바이트 truncate 일부 문자열 함수 제한
gd 썸네일 생성, 이미지 리사이즈, 빌트인 캡차 이미지 처리 기능 비활성화
curl HTTP 외부 요청 (소켓 서버 연동, SMS API) file_get_contents() 폴백
intl 국제화, 다국어 문자 처리 기능 제한
zip 파일 압축/해제 업로드 ZIP 처리 불가
fileinfo MIME 타입 정확한 감지 확장자 기반 폴백
apcu 메모리 캐시 (APCu 드라이버) 파일 캐시로 폴백
redis Redis 캐시 드라이버 파일 또는 APCu 캐시로 폴백
imagick 고품질 이미지 처리 (GD 대안) GD 폴백


2.3 PHP 설정 권장값

php.ini 항목 권장값 설명
memory_limit 256M 대용량 파일 업로드, 이미지 처리 시 필요
upload_max_filesize 50M 관리자 설정의 최대 업로드 크기와 일치 필요
post_max_size 55M upload_max_filesize보다 크게 설정
max_execution_time 60 썸네일 일괄 재생성 등 작업 시간 고려
max_input_vars 3000 메뉴 드래그 정렬 등 다수 폼 필드 처리
date.timezone Asia/Seoul 서버 기본 시간대 (CMS에서도 별도 설정 가능)
session.gc_maxlifetime 7200 세션 유효 시간 (2시간). CMS가 덮어씀
display_errors Off (운영) 운영 환경에서는 반드시 Off. CMS가 자동 설정
log_errors On 에러를 로그 파일에 기록. CMS가 자동 설정


2.4 설치 마법사의 환경 자동 점검

install/index.php 접속 시 STEP 1에서 아래 항목을 자동으로 점검합니다.
 
점검 항목 판정 기준 실패 시
PHP 5.6+ version_compare(PHP_VERSION, "5.6.0", ">=") 다음 단계 버튼 비활성화
PDO MySQL extension_loaded('pdo_mysql') 다음 단계 버튼 비활성화
JSON extension_loaded('json') 다음 단계 버튼 비활성화
data/ 쓰기 가능 is_writable(DX_ROOT . "/data") 다음 단계 버튼 비활성화
pages/ 쓰기 가능 is_writable(DX_ROOT . "/pages") 다음 단계 버튼 비활성화
OpenSSL (권장) extension_loaded('openssl') △ 경고 표시, 진행은 가능
Mbstring (권장) extension_loaded('mbstring') △ 경고 표시, 진행은 가능
GD (이미지 처리) extension_loaded('gd') △ 경고 표시, 진행은 가능


3. 데이터베이스 요구사항

3.1 지원 데이터베이스

DB 최소 버전 권장 버전 비고
MySQL
5.6
8.0+
InnoDB FULLTEXT 인덱스 지원 (5.6+)
MariaDB
10.1
10.6+
MySQL 5.6 호환. FULLTEXT 지원
기타 (PostgreSQL 등)
❌ 미지원
-
PDO MySQL 드라이버 전용


3.2 DB 설정 요구사항

항목 요구값 이유
문자셋 (Charset) utf8mb4 한국어 + 이모지 완전 지원. utf8은 4바이트 문자 처리 불가
Collation utf8mb4_unicode_ci 대소문자 구분 없는 검색. 한국어 정렬
스토리지 엔진 InnoDB FULLTEXT 인덱스, 트랜잭션, 외래키 지원
innodb_file_per_table ON (권장) 테이블별 독립 파일. 관리 용이
ft_min_word_len 2 (권장) FULLTEXT 최소 검색 단어 길이. 2자 검색 가능


3.3 생성되는 DB 테이블 목록 (총 43개)

schema.sql v5.0.0 기준, 모든 테이블은 IF NOT EXISTS로 생성되어 중복 실행이 안전합니다.
 
분류 테이블명 설명
회원 dx_members 회원 정보 (로그인 ID, 비밀번호, 레벨, 포인트 등)
회원 dx_social_accounts 소셜 로그인 연동 (카카오, 네이버, 구글, GitHub)
회원 dx_member_logs 로그인 이력, 활동 로그
회원 dx_member_sessions 동시 세션 관리
회원 dx_friends 친구 관계 (팔로우)
회원 dx_memos 쪽지 (DM)
게시판 dx_boards 게시판 설정 (키, 이름, 권한, 스킨 등)
게시판 dx_board_groups 게시판 그룹
게시판 dx_posts 게시글 (BIGINT PK, FULLTEXT 인덱스)
게시판 dx_comments 댓글
게시판 dx_post_files 첨부파일
게시판 dx_post_links 게시글 내 링크
게시판 dx_link_clicks 링크 클릭 로그
게시판 dx_post_drafts 게시글 임시저장
게시판 dx_global_notices 전체 공지
분류 dx_categories 게시판 분류 (무제한 계층)
상호작용 dx_likes 좋아요 (게시글/댓글)
상호작용 dx_scraps 스크랩 (북마크)
상호작용 dx_notifications 실시간 알림
상호작용 dx_dm_messages 1:1 채팅 메시지
콘텐츠 dx_pages 정적 페이지 (홈, 약관, 소개 등)
콘텐츠 dx_menus 내비게이션 메뉴
콘텐츠 dx_popups 팝업 관리
콘텐츠 dx_themes 테마 목록
회원레벨 dx_level_config 레벨 이름•필요 경험치 설정
포인트 dx_point_log 포인트 적립/차감 이력
경험치 dx_exp_log 경험치 획득 이력
통계 dx_visits 일별 방문자 집계
통계 dx_visit_logs 방문 로그 (UA, IP, 참조 URL, 봇 여부)
통계 dx_search_keywords 검색어 통계 (FULLTEXT 인덱스)
다운로드 dx_download_log 파일 다운로드 이력
플러그인 dx_plugins 플러그인 활성화 상태
설정 dx_settings 전역 CMS 설정 (key-value)
설치 dx_post_links  
멀티사이트 dx_sites 다중 도메인 사이트 설정
설문 dx_surveys 설문 정의
설문 dx_survey_questions 설문 질문
설문 dx_survey_answers 설문 선택지
설문 dx_survey_votes 설문 응답
API dx_api_keys REST API 키 관리
API dx_api_logs API 요청 로그
SMS dx_sms_logs SMS 발송 이력
상점 dx_shop_items 아이템 목록
상점 dx_shop_purchases 구매 이력


3.4 테이블 Prefix

기본 prefix는 dx_이며, 설치 시 변경할 수 있습니다. 영문 소문자, 숫자, 밑줄(_)만 사용 가능합니다. 하나의 DB에 여러 DXCMS 인스턴스를 설치할 경우 prefix를 다르게 지정합니다.

// 예: prefix를 "mysite_"로 변경한 경우
// dx_members → mysite_members
// dx_posts   → mysite_posts


4. 웹 서버별 설치 환경

4.1 지원 웹 서버 요약

웹 서버 지원 버전 URL Rewrite 설정 파일 특이사항
Apache 2.2 / 2.4 mod_rewrite (선택) .htaccess URL Rewrite 없으면 ?_url= 방식 자동 폴백
Nginx 1.x 이상 try_files 설정 nginx.conf.example 제공 $uri/ 조건 제거 필수
IIS 7.0 이상 URL Rewrite 2.x (선택) web.config 제공 URL Rewrite 없는 버전도 web.config 별도 제공
저가형 호스팅 제한적 환경에 따라 다름 .htaccess 기본 적용 PHP 레벨 폴백으로 대부분 환경 동작

핵심 설계 원칙: URL Rewrite 모듈이 없어도 ?_url=/path 방식으로 자동 폴백하므로, 저가형 공유호스팅에서도 기능 제한 없이 동작합니다.


4.2 Apache

필수 모듈
모듈 필수/선택 용도
mod_php (또는 PHP-FPM) 필수 PHP 실행
mod_rewrite 선택 (권장) 깔끔한 URL (/board/notice 형태). 없으면 ?_url= 폴백
mod_alias 선택 RedirectMatch로 민감 폴더 차단
mod_headers 선택 보안 헤더 발행. 없으면 PHP(Secure.php)가 대신 발행
mod_authz_core 선택 파일/폴더 접근 제어 (Apache 2.4+)

.htaccess 파일 구조
루트 .htaccess 외 각 민감 폴더에도 개별 .htaccess가 존재합니다.
파일 위치 역할
.htaccess (루트) URL Rewrite, PHP 직접 접근 차단, 보안 헤더, 민감 파일 다운로드 차단
data/.htaccess data/ 폴더 전체 차단 (uploads/ 서빙은 허용)
core/.htaccess core/ 폴더 전체 직접 접근 차단
core/auth/.htaccess auth/ PHP 파일 직접 실행 차단
core/security/.htaccess 보안 경로 폴더 직접 접근 차단
install/.htaccess 설치 마법사•마이그레이션 PHP 파일 실행 허용
pages/.htaccess    pages/ PHP 파일 직접 실행 차단
themes/.htaccess themes/ PHP 파일 직접 실행 차단
boards/.htaccess boards/ PHP 파일 직접 실행 차단

4.3 Nginx

설정 핵심 포인트
제공 파일: nginx.conf.example (웹 루트에 포함, 참고용)
설정 항목 값/방식 주의사항
PHP 실행 PHP-FPM socket 경유 fastcgi_pass 경로를 PHP 버전에 맞게 수정
URL Rewrite try_files $uri /index.php $uri/ (디렉토리 체크) 반드시 제거
data/ 차단 location ^~ /data/ { deny all; } 업로드 이미지는 별도 location으로 서빙 허용
PHP 직접 실행 차단 location ~ \.php$ { deny all; } index.php만 예외 허용
install/ PHP 실행 별도 location 블록으로 PHP 허용 설치 후 폴더 삭제 또는 접근 차단 권장
에러 페이지 error_page 403 404 /index.php CMS가 자체 처리

⚠ Nginx 설정에서 try_files에 $uri/를 포함하면 admin/, boards/ 등 실제 폴더가 있어 index.php를 거치지 않고 403이 발생합니다. 반드시 $uri/를 제거하세요.


nginx.conf.example 핵심 블록
# 모든 요청 → index.php (핵심 설정)
location / {
    try_files $uri /index.php?$query_string;  # $uri/ 없음 (중요!)
}

# PHP 실행 (index.php만)
location = /index.php {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}


4.4 IIS (Windows)

URL Rewrite 모듈 설치 여부에 따른 설정 파일
상황 사용할 파일 설명
URL Rewrite 2.x 설치됨 web.config 깔끔한 URL 완전 지원. 권장 설정
URL Rewrite 미설치 web.config.no-rewrite Rewrite 블록 없음. 500.19 오류 방지. ?_url= 방식으로 동작

URL Rewrite 없는 IIS 환경 URL 예시
# URL Rewrite 있을 때
https://site.com/free/view/123

# URL Rewrite 없을 때 (자동 폴백)
https://site.com/index.php?_url=/free/view/123

IIS URL Rewrite 설치 URL
https://www.iis.net/downloads/microsoft/url-rewrite

IIS 필수 설정 항목
항목 설정값 목적
디렉토리 탐색 disabled 폴더 목록 노출 방지
기본 문서 index.php PHP 진입점 지정
PHP ISAPI/FastCGI 설치 필요 PHP 실행 환경
X-Powered-By 헤더 제거 서버 정보 은닉


5. 디렉토리 권한 설정

5.1 Linux/Unix 권한 설정

디렉토리 권한 이유
data/ 755 또는 777 config.php, 캐시, 세션, 에러 로그 파일 생성
data/uploads/ 755 또는 777 파일 업로드 저장 디렉토리
pages/ 755 또는 777 페이지 PHP 파일 자동 생성 (에디터 방식)
data/cache/ 755 또는 777 파일 캐시 디렉토리 (자동 생성)
extend/ 755 extend 파일 추가용
core/ 644 (읽기 전용) 직접 수정 불가 권장
themes/ 644 (읽기 전용) 테마 편집은 FTP/SSH로
나머지 폴더 644 기본 읽기 전용

Linux 권한 설정 명령어
# 웹 루트에서 실행
chmod 755 data/ data/uploads/ pages/
chown -R www-data:www-data data/ pages/   # Ubuntu/Debian
chown -R apache:apache data/ pages/       # CentOS/RHEL


5.2 Windows IIS 권한 설정

폴더 IIS 앱풀 계정 권한 비고
data/ 수정(Modify) IIS_IUSRS 또는 앱풀 계정에 수정 권한 부여
pages/ 수정(Modify) 페이지 파일 자동 생성
나머지 읽기(Read) 기본

⚠ data/ 폴더에 쓰기 권한이 없으면 설치 마법사 STEP 1에서 "data/ 쓰기 가능 ✗" 가 표시되며 설치를 진행할 수 없습니다.

 

댓글0

로그인 후 댓글을 작성할 수 있습니다.
2. 시작 가이드 설치 시 보안 경로 구조 2026.04.20 2. 시작 가이드 서버별 설정 파일 상세 2026.04.20 2. 시작 가이드 기본 폴더 구조 설명 2026.04.20 2. 시작 가이드 설치 절차 2026.04.20 2. 시작 가이드 설치 환경 (PHP 버전, 서버 환경) 2026.04.20
30
전체 회원
269
전체 게시글
144
전체 댓글
181
오늘 방문
28,530
전체 방문
1
현재 접속
인기글 7일 이내
최신글
최신댓글
목록