그누보드 최신버전 (5.0.36) 살펴보기 - config.php > 개발강좌

개발강좌

프로그램 강좌 :
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축

그누보드 최신버전 (5.0.36) 살펴보기 - config.php 정보

그누보드5 그누보드 최신버전 (5.0.36) 살펴보기 - config.php

본문

그누보드 최신버전 (5.0.36) 살펴보기 - config.php

 

 

 

config.php 기본적인 환경 설정 파일입니다.

 

그누보드가 실행시에 필요한 대부분의 설정을 "define" 을 통해 상수로 정의해 놓는 파일입니다.

 

http://php.net/manual/kr/function.define.php

 

 

 

define('G5_VERSION', '그누보드5');

define('G5_GNUBOARD_VER', '5.0.36');

 

이 프로그램이 그누보드5라는 것과 세부 버전 정보를 정의한 상수입니다.

 

 

 

define('_GNUBOARD_', true);

 

그누보드가 정상적인지 상태로 사용되는지 체크 하기 위한 상수입니다.

하부에 인클루드 된 파일에서 이 "_GNUBOARD_" 설정여부를 따져서 실행할지 말지 결정하기도 합니다.

 

예) skin/board/basic/list.skin.php 제일 상단

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

 

 

if (PHP_VERSION >= '5.1.0') {

    //if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul");

    date_default_timezone_set("Asia/Seoul");

}

 

그누보드에서 사용될 기본 timezone 설정입니다.

php 의 날짜 관련 함수를 정확히 한국시간에 맞게 사용하기 위한 설정입니다.

php 의 버전에 따라 이것을 설정하지 않으면 에러가 나는 경우가 있습니다.

 

http://php.net/manual/kr/function.date-default-timezone-set.php

 

 

 

define('G5_DOMAIN', '');

 

현재 그누보드가 설치된 곳의 기본 주소를 설정합니다.

설정하지 않아도 상관은 없습니다.

설정되어있으면, 그누보드의 링크나 이미지 경로 같은 것들이 이것을 기준으로 만들어집니다.

 

http://www.domain.com , 하부경로(gnuboard)에 그누보드를 설치하였다면 http://www.domain.com/gnuboard

 

 

 

define('G5_HTTPS_DOMAIN', '');

 

현재 그누보드를 설치한곳이 보안서버를 사용한다면, 이곳에 설정합니다.

회원가입이나 로그인 같이 암호화 전송이 필요한곳에 이용됩니다.

 

https://www.domain.com:443 , 하부경로(gnuboard)에 그누보드를 설치하였다면 https://www.domain.com:443/gnuboard

 

만약 보안서버의 포트가 443 이면 기본 포트이므로 :443 은 생략 하시면 됩니다.

 

 

 

define('G5_COOKIE_DOMAIN',  '');

 

쿠키나 세션에 이용될 도메인 정보 입니다.

 

그누보드 운영환경이 domain.com 나 www.domain.com 으로 접속 가능할경우, 또는 서브도메인을 같이 사용할경우에는

.domain.com 과 같이 설정합니다.

 

그렇지 않을 경우는 설정하지 않아도 무방합니다.

 

 

 

define('G5_DBCONFIG_FILE',  'dbconfig.php');

 

디비와 관련 정보를 담은 파일의 이름을 설정합니다.

보안상의 이유로 기본 "dbconfig.php" 라는 파일명 대신 다른 것(secret.php)을 사용한다면 "secret.php" 로 설정합니다.

 

 

 

define('G5_ADMIN_DIR',      'adm');

define('G5_BBS_DIR',        'bbs');

define('G5_CSS_DIR',        'css');

define('G5_DATA_DIR',       'data');

define('G5_EXTEND_DIR',     'extend');

define('G5_IMG_DIR',        'img');

define('G5_JS_DIR',         'js');

define('G5_LIB_DIR',        'lib');

define('G5_PLUGIN_DIR',     'plugin');

define('G5_SKIN_DIR',       'skin');

define('G5_CAPTCHA_DIR',    'kcaptcha');

define('G5_EDITOR_DIR',     'editor');

define('G5_MOBILE_DIR',     'mobile');

define('G5_OKNAME_DIR',     'okname');

define('G5_KCPCERT_DIR',    'kcpcert');

define('G5_LGXPAY_DIR',     'lgxpay');

define('G5_SNS_DIR',        'sns');

define('G5_SYNDI_DIR',      'syndi');

define('G5_PHPMAILER_DIR',  'PHPMailer_v2.0.4');

define('G5_SESSION_DIR',    'session');

 

그누보드의 기본 필요한 것들이 들어잇는 기본 디렉토리명을 설정합니다.

이것 역시 보안상의 이유로 바꾸어서 설정할수 있습니다.

그리고 실 디렉토리명도 함께 바꾸어 주어야 합니다.

 

 

 

if (G5_DOMAIN) {

    define('G5_URL', G5_DOMAIN);

} else {

    if (isset($g5_path['url']))

        define('G5_URL', $g5_path['url']);

    else

        define('G5_URL', '');

}

 

이 부분은 그누보드에서 사용되는 각종 링크나 이미지, css, javascript 등의 url을 만들때 사용되어지는 "G5_URL" 을 설정합니다.

상위에서 "G5_DOMAIN" 을 따로 설정하였다면 그것을 사용하고,

설정하지 않았다면 그누보드 내부에서 기본 url을 생성하여 그것을 이용합니다.

사용자는 굳이 수정하지 않아도 되는 부분입니다.

 

 

 

if (isset($g5_path['path'])) {

    define('G5_PATH', $g5_path['path']);

} else {

    define('G5_PATH', '');

}

 

이 부분은 그누보드에서 내부적으로 인클루드 하여 사용될 파일들의 기본 경로를 설정합니다.

특수한 경우를 제외하고는 절대경로가 사용 되어집니다.

사용자는 굳이 수정하지 않아도 되는 부분입니다.

 

 

 

define('G5_ADMIN_URL',      G5_URL.'/'.G5_ADMIN_DIR);

define('G5_BBS_URL',        G5_URL.'/'.G5_BBS_DIR);

define('G5_CSS_URL',        G5_URL.'/'.G5_CSS_DIR);

define('G5_DATA_URL',       G5_URL.'/'.G5_DATA_DIR);

define('G5_IMG_URL',        G5_URL.'/'.G5_IMG_DIR);

define('G5_JS_URL',         G5_URL.'/'.G5_JS_DIR);

define('G5_SKIN_URL',       G5_URL.'/'.G5_SKIN_DIR);

define('G5_PLUGIN_URL',     G5_URL.'/'.G5_PLUGIN_DIR);

define('G5_CAPTCHA_URL',    G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);

define('G5_EDITOR_URL',     G5_PLUGIN_URL.'/'.G5_EDITOR_DIR);

define('G5_OKNAME_URL',     G5_PLUGIN_URL.'/'.G5_OKNAME_DIR);

define('G5_KCPCERT_URL',    G5_PLUGIN_URL.'/'.G5_KCPCERT_DIR);

define('G5_LGXPAY_URL',     G5_PLUGIN_URL.'/'.G5_LGXPAY_DIR);

define('G5_SNS_URL',        G5_PLUGIN_URL.'/'.G5_SNS_DIR);

define('G5_SYNDI_URL',      G5_PLUGIN_URL.'/'.G5_SYNDI_DIR);

define('G5_MOBILE_URL',     G5_URL.'/'.G5_MOBILE_DIR);

 

위에서 생성된 "G5_URL" 과 각 디렉토리명 상수들을 이용하여 기본 URL 들이 설정되는 부분입니다.

사용자는 수정이 불필요한 부분입니다.

 

 

 

define('G5_ADMIN_PATH',     G5_PATH.'/'.G5_ADMIN_DIR);

define('G5_BBS_PATH',       G5_PATH.'/'.G5_BBS_DIR);

define('G5_DATA_PATH',      G5_PATH.'/'.G5_DATA_DIR);

define('G5_EXTEND_PATH',    G5_PATH.'/'.G5_EXTEND_DIR);

define('G5_LIB_PATH',       G5_PATH.'/'.G5_LIB_DIR);

define('G5_PLUGIN_PATH',    G5_PATH.'/'.G5_PLUGIN_DIR);

define('G5_SKIN_PATH',      G5_PATH.'/'.G5_SKIN_DIR);

define('G5_MOBILE_PATH',    G5_PATH.'/'.G5_MOBILE_DIR);

define('G5_SESSION_PATH',   G5_DATA_PATH.'/'.G5_SESSION_DIR);

define('G5_CAPTCHA_PATH',   G5_PLUGIN_PATH.'/'.G5_CAPTCHA_DIR);

define('G5_EDITOR_PATH',    G5_PLUGIN_PATH.'/'.G5_EDITOR_DIR);

define('G5_OKNAME_PATH',    G5_PLUGIN_PATH.'/'.G5_OKNAME_DIR);

 

define('G5_KCPCERT_PATH',   G5_PLUGIN_PATH.'/'.G5_KCPCERT_DIR);

define('G5_LGXPAY_PATH',    G5_PLUGIN_PATH.'/'.G5_LGXPAY_DIR);

 

define('G5_SNS_PATH',       G5_PLUGIN_PATH.'/'.G5_SNS_DIR);

define('G5_SYNDI_PATH',     G5_PLUGIN_PATH.'/'.G5_SYNDI_DIR);

define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);

 

위에서 생성된 "G5_PATH" 과 각 디렉토리명 상수들을 이용하여 기본 PATH(경로) 들이 설정되는 부분입니다.

사용자는 수정이 불필요한 부분입니다.

 

 

 

define('G5_SET_DEVICE', 'both');

 

접속환경에 따라서 보여줄 화면을 설정합니다.

both - pc 로 접속시 pc화면 와 모바일로 접속시 모바일 화면 사용

pc - 어떤 환경으로 접속하여도 pc 화면만 보입니다.

mobile - 어떤 환경으로 접속하여도 모바일 화면만 보입니다.

 

 

 

define('G5_USE_MOBILE', true);

 

모바일 화면을 사용할지 여부입니다.

false 인 경우는 "G5_SET_DEVICE" 가 pc 인 경우와 같다고 볼수 있습니다.

 

 

 

define('G5_USE_CACHE',  true);

 

페이지를 출력시 캐시를 사용 할지 여부를 설정합니다.

false 로 설정하면 캐시를 사용하지 않습니다.

캐시를 사용하면, 시스템의 자원을 많이 절약할수 있습니다.

단점은, 최신글 등에 실시간 반영이 되지 않는다 입니다.

 

 

 

define('G5_SERVER_TIME',    time());

define('G5_TIME_YMDHIS',    date('Y-m-d H:i:s', G5_SERVER_TIME));

define('G5_TIME_YMD',       substr(G5_TIME_YMDHIS, 0, 10));

define('G5_TIME_HIS',       substr(G5_TIME_YMDHIS, 11, 8));

 

프로그램 상에서 사용될 기본적인 시간값을 미리 뽑아놓습니다.

프로그램이 진행되는 동안에도 시간은 계속 흐르기 때문에 그때 그때 시간을 뽑아서 저장하는것보다

처리하는 동안의 저장되는 시간의 일치를 위에서 미리 뽑아놓고 그것을 사용하는 용도입니다.

 

 

 

define('G5_ALPHAUPPER',      1); // 영대문자

define('G5_ALPHALOWER',      2); // 영소문자

define('G5_ALPHABETIC',      4); // 영대,소문자

define('G5_NUMERIC',         8); // 숫자

define('G5_HANGUL',         16); // 한글

define('G5_SPACE',          32); // 공백

define('G5_SPECIAL',        64); // 특수문자

 

입력값 검사시 필요한 상수입니다.

수정하시면 안됩니다.

 

 

 

define('G5_DIR_PERMISSION',  0755); // 디렉토리 생성시 퍼미션

define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션

 

프로그램 실행도중 생성되는 디렉토리와 파일의 권한 설정입니다.

윈도우 서버는 신경 쓸 필요없고,

리눅스 서버일때는 보안상의 이유로 적당히 변경하여 사용할수 있는 설정입니다.

 

 

 

define('G5_MOBILE_AGENT',   'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry|android|sony');

 

현재 접속한 환경이 pc 인지 모바일인지 구분하기 위한 상수 값입니다.

여기에 설정된 것만 모바일로 인식하겠다는 설정입니다.

 

만약, 이것의 설정을 변경할때는

이상태로 사용되는 것이 아니라 정규표현식 패턴으로 사용되어짐을 인식하고

기기의 구분은 | 으로 두고 정규표현식에 맞게 수정하여야 문제가 없습니다.

 

 

 

define('G5_SMTP', '127.0.0.1');

 

메일을 보낼때 사용되는 설정입니다.

smtp 설정인데. 외부 smtp를 쓰실경우에는 해당 서버의 아이피나 호스트명을 입력하면 됩니다.

 

 

 

define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password');

내부적으로 사용될 암호화 함수를 설정합니다.

암호화에는 풀수 있는것과 없는 것이 있는데, 경우에 따라 암호화 된것을 풀어서 사용해야 한다면

여기서 거기에 맞는 함수를 설정하여 줍니다.

 

변경시에는 반드시, 이것은 설치전에 미리 이 파일을 열어서 변경해야합니다.

설치후에 변경하게 되면 로그인이 되지 않거나 정보가 엉키는 경우가 발생합니다.

 

 

 

define('G5_DISPLAY_SQL_ERROR', FALSE);

 

디비 작업을 하면서 발생되는 에러를 보여줄것인지 설정합니다.

이것을 true 로 설정하게 되면 SQL 인젝션 공격의 빌미를 제공할수도 있습니다.

오픈전에 개발단계라면 true, 오픈 하면 false 로 놓는 것이 바람직합니다.

 

 

 

define('G5_ESCAPE_FUNCTION', 'sql_escape_string');

 

디비에 저장시 들어갈 값을 필터링 해주거나 sql 실행상 문제가 없도록 만들어주는 함수를 설정합니다.

개인이 개별적으로 만들어서 여기에 설정하고 사용하여도 됩니다.

 

 

 

define('G5_LINK_COUNT', 2);

 

게시판생성시 기본적으로 설정된 링크 갯수를 설정합니다.

 

 

 

define('G5_THUMB_JPG_QUALITY', 90);

 

게시판이나 다른 프로그램 내에서 썸네일 이미지를 생성할때 jpg 인경우 그 질을 얼마에 맞출것인가에 대한 설정입니다. 100 이 최고값입니다.

 

 

 

define('G5_THUMB_PNG_COMPRESS', 5);

 

게시판이나 다른 프로그램 내에서 썸네일 이미지를 생성할때 png 인경우 결과물의 압축 레벨을 설정합니다.

0 에서 9까지 설정 가능합니다. 숫자가 높을수록 압축율이 높습니다.

 

 

 

define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');

 

게시판이나 각종 뷰 화면에서 아이피를 출력시 어떤 형태로 보여줄건지 지정하는 정규표현식의 패턴을 설정합니다.

기본설정은 아이피가 123.123.123.123 이라면 123.♡.123.123 으로 보여집니다.

 

 

 

if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') {   //https 통신일때 daum 주소 js

    define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');

} else {  //http 통신일때 daum 주소 js

    define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');

}

 

다음 주소 api를 사용할때 필요한 부분입니다.

큰 차이는 업고 현재 접속 환경이 https 냐 http 냐에 따라 다른 스크리트 파일을 사용한다는 설정입니다. 

추천
17

댓글 35개

이걸 팁으로 올려야 할지 강좌로 올려야 할지 애매하긴 한데
제 생각에는 틈틈이 조금씩 연재할 생각이므로 강좌가 맞는것 같습니다.

근데 카테고리명은 애매하네요.
관리자님이 판단하여 팁으로 이동하여 주시거나
카테고리를 하나 만들어주시면 좋을것 같습니다.
전체 53
개발강좌 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT