• [제로보드/XpressEngine 설치] gd 라이브러리 설치와 mod_rewrite 문제

    오랫만에 PHP 용 게시판의 대명사 제로보드를 설치할 일이 생겼다. 일 때문이라기 보단 그저 궁금함..?? 때문이기도 했다. 제로보드에서 XpressEngine으로 이름을 바꾸고 네이버의 탈(?)을 쓰긴 했지만 오픈소스를 유지하며 계속 버전업이 되고 카페모듈까지도 지원이 되니 개발에 취미가 없는 나 같은 사람에게는 딱~좋은 무료 게시판 소스다. 그저 감사히 사용할 따름이다. UTF-8 캐릭터셋을 지원하는 리눅스 서버에 http://www.xpressengine.net 에서 다운받은 xe.tar를 올려놓고 (zip으로 제공한다.) t …

  • vi 에디터에서 ^M 문자 한번에 모두 지우기 ( ^M, ^L을 이해하자)

    윈도에서 개발하던 개발자 혹은 SE들이 Unix로 전향(?)한 뒤 고생하는 문제중에 하나가 바로 텍스트파일의 포맷차이로 인한 문제다.  또한 FTP로 파일을 Upload하거나 Download 할 때 Binary 모드와 ASCII 모드의 차이를 이해하지 못하는 엔지니어들이 종종 이 문제로 인해 사고를 치곤한다. Unix/Linux의 /etc/passwd 파일을 FTP를 통해 윈도PC로 다운로드 받을 때 Binary 모드로 다운로드를 받게 되면 다음과 같이 텍스트파일이 깨져(?) 보인다. 하지만 이것은 파일이 깨진것이 아니다. ASC …

  • awk 명령을 활용하여 설정파일의 특정 옵션 변경하는 스크립트

    unix와 linux에서 기본적으로 지원되는 명령어 중에 awk가 있다. 이 awk는 무척이나 강력한 기능을 갖고 있는 파일 핸들링 및 문자열 처리 능력을 갖고 있는데 제목과 같이 설정파일에서 특정 옵션값을 검사하고 조건과 비교하여 변경하여 저장할 때 유용하게 사용할 수 있다. #!/usr/bin/ksh # cat 명령으로 login.cfg를 출력하여 awk의 표준입력으로 보낸다. # 만약 필드의 구분자가 : 라면 awk -F: '{ 와 같이 -F 옵션으로 필드 구분자를 지정할 수 있다. cat /etc/security/login. …

  • [AIX 5.3] 특정 계정에서 du 명령 실행 시 “cannot find the current directory” 에러 발생

    AIX 서버에서 특정 계정(이 경우는 oracle 등등~)에서 du 명령을 실행하면 아래와 같은 에러가 발생하면서 정상적으로 실행되지 않는 경우가 있다. $ du -sk * du:0653-175 Cannot find the current directory. $ 보통 현재의 계정에서 접근권한이 없는 디렉토리 혹은 파일이 하위에 있더라도 permission 에러가 발생하면서 다른 파일들에 대한 사이즈를 체크하여 그 합계를 보여주는 것이 일반적인 경우인데 이런 경우에는 아예 실행한 이후 전혀 용량을 계산하지 못하고 위와같은 에러 메시지를 …

  • 두개의 텍스트 파일을 조건에 따라 합치기 (awk로 두개의 파일열기, getline)

    Unix나 Linux에서 엔지니어로 일을 하다 보면 쉘스크립트(Shell script)를 작성해야 하는 경우가 많다. 더군다나 수 십대 이상의 Unix 및 Linux 서버를 대상으로 동일한 성격의 작업을 반복하다 보면... “이게 웬 막노동(일명:노가다) 인가..” 라는 생각이 치밀곤 한다. 그 중의  하나가 두 개의 텍스트 파일을 비교하고 한 파일의 일부를 다른 파일에 합치는 그런 프로그램이 있었으면 하는 경우가 종종 있다. 그냥 단순한 파일합치기 혹은 파일을 비교해 다른 줄을 출력하는 정도라면 운영체제에서 제공되는 명령을 써서  …

  • Linux, Unix에서 사용자 계정 간 권한위임 방법

    Unix 및 Linux 운영체제에 설치되는 다양한 상용 애플리케이션들은 각자의 관리자 계정을 필요로 한다. 오라클, 웹로직은 물론 국산 S/W 들도 각각의 관리자 계정을 만들 것을 요구한다. 따라서 각각의 서비스를 구동/중지하기 위해서는 각 계정의 패스워드를 알고 있어야 하며 일반 계정 혹은 root 계정으로 로그인하여 su (Switch User) 명령을 통해 해당 계정의 Shell을 획득해야 한다. 서비스를 구동/중지 하는 사람이 한명이거나 모두 신뢰할 수 있는 사용자라면 모두에게 각 서비스 관리자 계정의 패스워드를 알려주어도 …

  • 파일시스템 Full로 인한 mysql 구동/종료/테이블 접근 장애 복구하기

    갑자기 운영하던 웹사이트(RedHat Linux, Apache, PHP, MYSQL)에 접근이 안되는 장애가 생겼다. root 계정으로 로그인하여 확인하니 httpd 대몬이 평소보다 훨씬 많은 숫자가 실행중이었고 mysql 대몬은 정상적으로 실행중인 것 처럼 보였다. 급하게 apache와 mysql을 재구동 하려 하였으나 mysql의 종류(mysql.server stop)가 안되었고 강제로 kill한 뒤 mysql을 구동하려 하였으나 평소와는 달리 프로세스는 한참만에 떴으나 mysql 클라이언트 및 apache를 통한 db 접근이 …

  • MYSQL] MYSQL 5.0.33 설치 중 “query_cache_init_query” 관련 오류 패치

    금일 (2007년 1월25일) 기준 최신버전의 MYSQL인 5.0.33 설치 중 다음과 같은 에러가 발생한다. 네이버...구글 등 한글 검색사이트 검색 결과 관련 정보가 하나도 -.- 없었다. ./configure -- ..... sql_class.cc: In constructor 'THD::THD()': sql_class.cc:265: error: 'query_cache_init_query' was not declared in this scope make[5]: *** [sql_class.o] Error 1 이 에러는 config …

  • [MYSQL] mysql의 client library 설치하기

    mysql 5.0 이상버전의 소스로 컴파일하여 설치할 때에는 client library를 별도로 한번 더 컴파일해주어야 했다.mysql 설치 후 ./configure \--enable-thread-safe-client \--with-charset=euckr \--without-server \--without-query-cache \--without-docs \--without-man \--without-bench \--without-readline \--without-libeditmake && make install 위와 같이 pr …

  • [MYSQL] 부팅 시 자동 실행 되도록 서비스 등록하기

    MySQL을 설치할 때는 Daemon 들이 root 소유자로 실행되지 않도록 하는 것이 좋다. 보안상 MySQL의 취약성이 발결되어 공격을 당하게 되면 곧바로 root shell을 획득하는 것이 가능하기 때문이다. 따라서 MySQL을 mysql과 같이 일반 계정으로 실행되도록 설치하라. 그리고 부팅 시 자동으로 실행되도록 하기 위해서는 다음과 같은 작업 절차를 거친다. 1. 설치된 디렉토리 (여기서는 /app/mysql5 로 가정한다.) 아래의 support-files 디렉토리로  이동하고... 2. mysql.server 라는 파 …