그누보드 최신버전 (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 냐에 따라 다른 스크리트 파일을 사용한다는 설정입니다. 

|

댓글 28개

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

근데 카테고리명은 애매하네요.
관리자님이 판단하여 팁으로 이동하여 주시거나
카테고리를 하나 만들어주시면 좋을것 같습니다.
감사합니다.
냑에서 지원해 주어야 할 부분을.. 감사합니다.
별말씀을요.
저도 그누보드5를 한번 꼼꼼이 볼겸
겸사겸사 하는 것입니다.
멋져용 좋아용!!!
저도 좋아요 ㅎㅎ
감사합니다.
선생님 고맙습니다!
꼭 제대로 알고 싶었는데요. 너무 고맙습니다!
별말씀을요.
하는데 까지 해보겠습니다.
프린트 합니다.
감사합니다.
도움이 되도록 노력하겠습니다.
이런거 아주 좋습니다. 감사합니다. ^^
네에 고맙습니다. ^^
잠시.. 사진이 손석희 앵커인 줄 알았습니다. ^^
기초를 잘 다져주세요. 열심히 공부하겠습니다....^^
되는데로 열심히 해보겠습니다. ^^
기본부터 충실히 보여주시는군요.
감사히 잘 보았습니다^^
그럴려고 하는데 앞으로 어떻게 흐를지는 모르겟습니다.

감사합니다.
항상 감사합니다. 열심히 보겠습니다!!
네에 고맙습니다.
좋은 정보 감사합니다!!!
네 고맙습니다
저같은 문외한도 이 강좌로 공부를 할 수 있나요?^^ 수고 많으십니다~
이런 엄청난 문서를 작성해주시다니 은혜롭습니다
네 고맙습니다
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
10년 전 조회 724
10년 전 조회 1,051
10년 전 조회 554
10년 전 조회 788
10년 전 조회 703
10년 전 조회 1,018
10년 전 조회 1,211
10년 전 조회 1,119
10년 전 조회 826
10년 전 조회 1,146
10년 전 조회 936
10년 전 조회 696
10년 전 조회 1,299
10년 전 조회 771
10년 전 조회 1,054
10년 전 조회 720
10년 전 조회 573
10년 전 조회 1,969
10년 전 조회 1,055
10년 전 조회 1,078
10년 전 조회 855
10년 전 조회 1,140
10년 전 조회 1,001
10년 전 조회 741
10년 전 조회 1,215
10년 전 조회 1,642
10년 전 조회 1,049
10년 전 조회 938
10년 전 조회 963
10년 전 조회 884
10년 전 조회 1,576
10년 전 조회 1,480
10년 전 조회 533
10년 전 조회 929
10년 전 조회 502
10년 전 조회 862
10년 전 조회 2,349
10년 전 조회 883
10년 전 조회 2,927
10년 전 조회 1,579
10년 전 조회 1,188
10년 전 조회 541
10년 전 조회 895
10년 전 조회 1,185
10년 전 조회 1,604
10년 전 조회 2,956
10년 전 조회 1,744
10년 전 조회 1,905
10년 전 조회 2,376
10년 전 조회 3,965
10년 전 조회 1,582
10년 전 조회 722
10년 전 조회 2,427
10년 전 조회 864
10년 전 조회 1,088
10년 전 조회 1,852
10년 전 조회 760
10년 전 조회 770
10년 전 조회 3,083
10년 전 조회 776
10년 전 조회 656
10년 전 조회 629
10년 전 조회 545
10년 전 조회 1,081
10년 전 조회 812
10년 전 조회 686
10년 전 조회 795
10년 전 조회 1,289
10년 전 조회 2,135
10년 전 조회 1,207
10년 전 조회 1,468
10년 전 조회 1,968
10년 전 조회 1,381
10년 전 조회 1,188
10년 전 조회 1,102
10년 전 조회 3,982
10년 전 조회 764
10년 전 조회 1,080
10년 전 조회 1,691
10년 전 조회 1,131
10년 전 조회 2,846
10년 전 조회 1,070
10년 전 조회 1,003
10년 전 조회 1,078
10년 전 조회 4,648
10년 전 조회 949
10년 전 조회 2,473
10년 전 조회 1,779
10년 전 조회 2,432
10년 전 조회 1,997
10년 전 조회 2,741
10년 전 조회 906
10년 전 조회 1,160
10년 전 조회 2,970
10년 전 조회 1,339
10년 전 조회 713
10년 전 조회 1,732
10년 전 조회 1,469
10년 전 조회 1,203
10년 전 조회 1,156
🐛 버그신고