서버상태 159
159번 서버 상태 요약
상세(보기)charset 은 문자 집합, collation 은 정렬을 뜻한다. 자료형이 왜 필요하나? 먼저 자료형이 왜 필요할지부터 생각해보자. 컴퓨터 프로그램은 프로그래머가 의도한 대로 동작한다. 이 때 같은 목적의 프로그램이라고 할지라도 효율적으로 동작하는 것이 더 좋은 프로그램이 된다. “컴퓨터 알고리즘(Computer Algorithm)” 학문에서는 이를 평가(Performance Analysis)하기 위해서, “시간복잡도(time complexity)“와 “공간복잡도(space complexity)“의 개념을 사용한다. 같은 이유로 데이터베이스 학문도 “더 작은…
상세(보기)날짜 컨트롤들을 지역화하여 한글 형태로 다루기 위해 먼저 datepicker 의 기본 옵션값을 세팅해 둔 후 주말(토,일요일), 일요일, 이전 날짜, 특정 날짜들을 return 하는 함수들도 선언해 둡니다. disabledDays 라는 배열변수에는 임의로 “2013-7-9”, “2013-7-24”, “2013-7-26” 와 같이 3개의 날짜를 듬성듬성 심어놓았습니다. 각 입력폼에 datepicker 를 호출하면서 beforeShowDay 라는 옵션값에 가져오는 값에 따라 특정날짜들이 disable 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
jQuery(function($){ $.datepicker.regional['ko'] = {closeText: '닫기',prevText: '이전달',nextText: '다음달',currentText: '오늘',monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)','7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],monthNamesShort: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'],dayNames: ['일','월','화','수','목','금','토'],dayNamesShort: ['일','월','화','수','목','금','토'],dayNamesMin: ['일','월','화','수','목','금','토'],weekHeader: 'Wk',dateFormat: 'yy-mm-dd',firstDay: 0,isRTL: false,showMonthAfterYear: true,yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ko']); $('#date1').datepicker({showOn: 'both',buttonText: "달력",changeMonth: true,changeYear: true,showButtonPanel:true,yearRange: 'c-99:c+99',constrainInput: true,maxDate: '+1y',beforeShowDay: disableAllTheseDays }); $('#date2').datepicker({showOn: 'both',buttonText: "달력",changeMonth: true,changeYear: true,showButtonPanel:true,yearRange: 'c-99:c+99',constrainInput: true,maxDate: '+1y',beforeShowDay: noBefore }); $('#date3').datepicker({showOn: 'both',buttonText: "달력",changeMonth: true,changeYear: true,showButtonPanel:true,yearRange: 'c-99:c+99',constrainInput: true,maxDate: '+1y',beforeShowDay: noWeekendsOrHolidays }); $('#date4').datepicker({showOn: 'both',buttonText: "달력",changeMonth: true,changeYear: true,showButtonPanel:true,yearRange: 'c-99:c+99',constrainInput: true,maxDate: '+1y',beforeShowDay: noSundays }); }); // 특정날짜들 배열 var disabledDays = ["2013-7-9","2013-7-24","2013-7-26"]; // 주말(토, 일요일) 선택 막기 function noWeekendsOrHolidays(date) { var noWeekend = jQuery.datepicker.noWeekends(date); return noWeekend[0] ? [true] : noWeekend; } // 일요일만 선택 막기 function noSundays(date) { return [date.getDay() != 0, '']; } // 이전 날짜들은 선택막기 function noBefore(date){ if (date < new Date()) return [false]; return [true]; } // 특정일 선택막기 function disableAllTheseDays(date) { var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); for (i = 0; i < disabledDays.length; i++) { if($.inArray(y + '-' +(m+1) + '-' + d,disabledDays) != -1) { return [false]; } } return [true]; } |
오전에 리눅스에서 수십 개 이상의 디렉터리와 백여 개 이상의 파일이 있는 곳에서 과거 EUC-KR 로 인코딩 되어 있던 파일을 UTF-8로 코드 변환을 해야할 필요가 있었습니다. (혹은 윈도우의 코드페이지 949로 되어 있는 파일을 리눅스에 가지고 가서 UTF-8로 변환할 경우도 마찬가지 입니다.) 물론 쉘 프로그램을 몇 줄 짜서 작업을 해도 되지만, Linux, Mac 등이 기본으로 가지고 있는 find…
상세(보기)아래와 같이 수정하면 해당 if문을 타면서 switch case 구문을 타기 때문에 register 가 들어왔을 때 $title에 제대로 된 번역값이 들어가게 되어 정상적으로 한글이 출력됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
public function get_title( $action = '' ) { if ( empty( $action ) ) $action = $this->get_option( 'default_action' ); if ( is_admin() ) return; if ( is_user_logged_in() && 'login' == $action && $action == $this->get_option( 'default_action' ) ) { $title = sprintf( __( 'Welcome, %s', 'theme-my-login' ), wp_get_current_user()->display_name ); } else { if ( $page_id = Theme_My_Login::get_page_id( $action ) ) { // get_title 함수로 action이 들어오는데 $get_page_id 함수를 살펴보면 // $page_id와 같은 값이 되어 해당 if문을 타게 됩니다. $title = get_post_field( 'post_title', $page_id ); } else { // 이 else문을 타지 않아 번역값을 호출하지 못합니다. switch ( $action ) { case 'register': $title = __( 'Register', 'theme-my-login' ); break; case 'lostpassword': case 'retrievepassword': case 'resetpass': case 'rp': $title = __( 'Lost Password', 'theme-my-login' ); break; case 'login': default: $title = __( 'Log In', 'theme-my-login' ); } } } return apply_filters( 'tml_title', $title, $action ); } |
1 |
if ( $page_id = Theme_My_Login::get_page_id( $action ) ) { $title = get_post_field( 'post_title', $page_id ); // ---> 이 구문은 변경 후 기본 케이스로 사용합니다. } else { -- 후략 -- // 이런 조건문이 있습니다. // 조건문의 else 부분에 있는 switch case 구문을 복사하고 // default의 구문을 기존 if문에 있던 구문으로 교체합니다. // 그렇게 되면 다음과 같이 변경되겠죠. if ( $page_id = Theme_My_Login::get_page_id( $action ) ) { switch ( $action ) { case 'register': $title = __( 'Register', 'theme-my-login' ); break; case 'lostpassword': case 'retrievepassword': case 'resetpass': case 'rp': $title = __( 'Lost Password', 'theme-my-login' ); break; case 'login': default: $title = get_post_field( 'post_title', $page_id ); // default: --> 기존 if문에 있던 구문 } } else { -- 후략 -- |
이렇게 수정하면 해당 if문을 타면서 switch case 구문을 타기 때문에 register 가 들어왔을 때 $title에 제대로 된 번역값이 들어가게 되어 정상적으로 한글이 출력됩니다. 물론 해결방법은 여러가지가 있습니다. 하지만…
상세(보기)ruid2 같이 아파치에 모듈을 추가하려면 apxs 가 필요할 경우가 생긴다.
1 |
# find -name 'apxs' -print |
없다면
1 |
# yum install httpd-devel |
소스는 소스포지 http://sourceforge.net/projects/mod-ruid
1 2 3 4 |
# yum install libcap-devel # tar xfp mod_ruid2-0.9.8.tar # cd mod_ruid2-0.9.8 # /usr/local/apache/bin/apxs -a -i -l cap -c mod_ruid2.c |
요라믄 끝 하지만 ruid2 사용시 php.ini 의 session.gc_maxlifetime 에 의해 세션이 자동삭제가되지 않는 증상, 이를 해결하기 위해 명령어를 주기적(cron등록)으로 실행하여 삭제를 해야 한다.
1 |
# find /tmp -type f -name 'sess_*' -cmin +24 -exec rm -f {} \; |
깉이 사용 할 수 없는 모듈들 mod_cache mod_cache_disk mod_cache_socache MPM worker MPM event MPM event…
상세(보기)apache configure –enable-auth-digest mod_auth_digest가 제공하는 RFC2617 Digest authentication을 사용한다. 이 모듈은 정보를 일반 문자파일에 저장한다. –enable-rewrite mod_rewrite가 제공하는 규칙기반 URL 조작 기능을 사용한다. –enable-speling mod_spelling이 제공하는 URL에서 일반적인 맞춤법 실수를 고치는 기능을 사용한다. –disable-setenvif mod_setenvif가 제공하는 헤더에 따라 환경변수를 설정하는 기능을 사용하지 않는다. –disable-mime mod_mime은 요청한 파일명의 확장자에 따라 파일의 행동과 내용(mime-type, 언어, 문자집합, 인코딩)을…
상세(보기)