그누보드 최신버전 (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개
게시글 목록
| 번호 | 제목 |
|---|---|
| 8265 | |
| 20403 | |
| 20402 | |
| 20401 | |
| 20400 |
웹서버
서버 동시접속자 설정 변경하기
|
| 8259 | |
| 20399 | |
| 20398 | |
| 8255 | |
| 8249 | |
| 8246 | |
| 8242 | |
| 20396 | |
| 8240 | |
| 20395 | |
| 20394 |
MySQL
테이블 복사 쿼리
|
| 31033 | |
| 28385 | |
| 20393 |
PHP
현재 접속중인 사용자 나타내기
|
| 28380 | |
| 20392 |
MySQL
mysql select 후 update 하기
|
| 28377 | |
| 20391 | |
| 20390 |
PHP
한글문자열 자르는 법 입니다.
|
| 20389 | |
| 20388 | |
| 20387 |
PHP
이메일주소 검사하기 입니다.
|
| 20386 | |
| 20385 | |
| 20384 |
node.js
Node js 게시판 프로젝트 소개합니다.
|
| 20383 |
PHP
pc 모바일 체크
1
|
| 20382 |
PHP
계정 사용량(용량) 확인
|
| 8238 | |
| 20380 | |
| 20379 |
MySQL
소수점 반올림 버림
|
| 28376 | |
| 28372 | |
| 20378 | |
| 20377 |
PHP
에러 로그파일 생성하기
|
| 8235 | |
| 20375 | |
| 20374 | |
| 20373 |
PHP
후이즈검색 하기 입니다.
|
| 20372 |
PHP
그래프 그리기 입니다.
|
| 20371 |
JavaScript
자바스크립트로 구현한 number_format() 입니다.
|
| 20370 |
JavaScript
금액 관련 숫자를 한글로 변환하기 입니다.
|
| 28370 | |
| 20369 |
PHP
PHP 날짜 계산 관련 함수
|
| 28366 | |
| 20368 |
jQuery
jQuery 1.x와 2.x 버전 동시에 사용하기
|
| 20367 | |
| 20366 | |
| 20365 |
JavaScript
사업자 등록번호 검사하기 입니다.
|
| 20364 | |
| 20363 |
JavaScript
항상 같은곳에 광고창 만들기 입니다.
|
| 20362 |
JavaScript
부메뉴 나오게 하기 입니다.
|
| 20361 |
JavaScript
특정문자 제거하기 입니다.
|
| 20360 |
JavaScript
휴대폰번호 검사 하기 입니다.
|
| 20359 |
JavaScript
이미지 좌우로 이동 갤러리 입니다.
|
| 8231 | |
| 20358 | |
| 20357 |
JavaScript
쉬운 replaceAll 입니다.
|
| 20356 | |
| 20355 | |
| 20354 | |
| 20353 | |
| 20352 |
JavaScript
콤보스타일 메뉴 입니다.
|
| 20351 |
JavaScript
쿠키를 이용한 레이어 공지창 입니다.
|
| 20350 |
JavaScript
효과있는 텍스트 틱커 입니다.
|
| 20349 | |
| 20348 |
PHP
HTTP 인증 하기 입니다.
|
| 20347 |
JavaScript
외부 문서 불러오기 입니다.
|
| 20346 |
JavaScript
지정한 날짜까지 New 이미지를 띄워주기 입니다.
|
| 20345 | |
| 20344 |
JavaScript
메일 주소 검사하기 체크박스 입니다.
|
| 20343 |
JavaScript
무단링크 금지하기 입니다.
|
| 20342 | |
| 20341 |
MySQL
DB백업 및 복원
|
| 20340 |
JavaScript
페이지가 다른 사이트의 프레임에 갇히는 것을 막기 입니다.
|
| 20339 | |
| 20338 | |
| 20337 |
jQuery
input text 대문자만 받는 Jquery
|
| 20336 | |
| 20335 |
JavaScript
이미지 업로드와 미리보기 입니다.
|
| 20334 |
JavaScript
배경음악 랜덤 재생 하기 입니다.
|
| 20333 |
JavaScript
css 지원 여부 확인해서 다른 페이지로 이동하기 입니다.
|
| 20332 |
JavaScript
하부메뉴가 보였다가 숨겨졌다 하는 토글버튼 입니다.
|
| 20331 |
JavaScript
개별 페이지에 인덱스로 거쳐 들어오게 하기 입니다.
|
| 20330 |
JavaScript
랜덤으로 이미지 출력 되기 입니다.
|
| 20329 |
JavaScript
사용자 해상도 알아내기 입니다.
|
| 20328 |
JavaScript
붙여넣기 금지하기 입니다.
|
| 20327 |
MySQL
대소문자 데이터 조회하기
|
| 20326 |
JavaScript
퇴장시 팝업창 한번한 띄우기 입니다.
|
| 20325 | |
| 20324 | |
| 20323 |
JavaScript
시도, 구군, 동 주소 select
|
| 20322 |
MySQL
커리로 DB 테이블 명세서 출력하기
|
| 20321 |
JavaScript
브라우저 해상도 구분없는 절대 x,y 좌표 값 구하기 입니다
|
| 20320 |
PHP
rss 읽어오기 입니다.
|
| 20319 |
JavaScript
자바스크립트로 Ajax 효과내기 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기