블로그(텍스트큐브) 서버를 직접 만들어보기 – OS & Package 설치

지금 이 블로그는 제가 직접 만든 서버에서 열고 있습니다. 이전에 호스팅해주던 서버에 문제가 생겨서 결국 제가 직접 만들게 되었죠. 그러면서 삽질도 조금 해봤구요.

Textcube 1.8

텍스트큐브 1.8을 설치하기 위한 조건은 다음과 같습니다.

  • 웹서버
    • Apache 1.2 이상
    • IIS 7 이상 (IIS 6는 비공식 지원)
    • nginx 0.6.22 이상
    • lighttpd 1.4.22 이상 (베타 테스트 중)
  • PHP
    • PHP 5.2 이상 (PHP 5.2.10 이상 권장)
  • 데이터베이스
    • MySQL 4.1 이상 (MySQL 5.1 이상 권장)
    • Cubrid 2008 R 1.3 이상
    • PostgreSQL 8.3 이상

이 중에서 우리는 Apache2와 PHP5, MySQL 5.1로 서버를 만들 것입니다.

OS & Package 설치

OS는 Debian 6.0.0[^1] 으로 선택하였습니다. 보안적인 측면에서 리눅스 중에 Ubuntu가 가장 안정적이지만 잦은 업데이트가 있다는 것이 서버로 쓰기에는 흠이 되죠. 그래서 같은 Debian 계열이면서 서버 사용에 최적화된 Debian으로 골랐습니다. 얘는 많은 테스트를 거치면서 안정적이다라고 확신될 때만 업데이트를 하거든요. 그래서 업데이트가 정말 드뭅니다. 그러면서 안정성은 높지요.

Debian 계열의 리눅스의 장점은 단연코 apt에 의해서 관리되는 패키지들입니다. Debian은 특히 서버에 최적화되어서 설치 과정 중에 필요한 패키지들을 고를 수 있습니다. 서버의 용도에 따라 웹서버, 프린트 서버, DNS 네임서버, DB 서버 등으로 선택이 가능합니다. 물론, 중복 선택도 가능하구요. Ubuntu와 마찬가지로 Debian도 설치 가이드라인이 잘 짜여져 있어서 설치 자체도 간단하고 빨리 진행됩니다. OS 설치하고 보안업데이트까지 다 하는데 30분 정도 걸리더라구요.

사용자 삽입 이미지[그림1] OS를 설치하면서 필요한 패키지 선택

우리의 목적은 블로그 서버를 만드는 것이기 때문에 [그림1]처럼 웹서버를 선택합니다. 그러면 Apache2와 PHP5가 설치됩니다. SQL Database를 선택하면 필요없는 패키지들도 설치되어서 따로 apt를 이용해서 MySQL을 설치할 것입니다. SSH를 열어두면 관리하기 편해서 선택했지만 이것은 선택사항입니다.

설치가 완료되면 root 권한으로 다음과 같이 MySQL을 설치합니다.

# apt-get install mysql-server-5.1 mysql-client-5.1 php5-mysql


특히, php5-mysql이 중요합니다. PHP와 MySQL을 연동시켜주는 패키지인데, 이것이 설치되지 않으면 텍스트큐브를 설치할 때 mysql_connect를 찾지 못해서 아래와 같은 오류메시지가 나오면서 진행이 되지 않습니다.

Warning: require_once(./framework/data//Adapter.php) [function.require-once]: failed to open stream: No such file or directory in ./framework/alias/DBAdapter.php on line 14

Fatal error: require_once() [function.require]: Failed opening required ‘./framework/data//Adapter.php’ (include_path=’.;/usr/lib/php/pear’) in ./framework/alias/DBAdapter.php on line 14

여기까지 진행이 되면 필요한 최소한의 패키지들은 모두 설치되었습니다.

  1. Debian — The Universal Operating System :: http://www.debian.org/

Similar Posts

  • C :: multiple definition 에러

    카드 게임을 구현하는 코드를 짰는데, 컴파일해보니 이런 메시지가 나왔습니다. 0 errors, 0 warnings 아주 반가운 메시지죠. 하지만 실행이 되질 않더군요. 그래서 메시지를 자세히 보니 multiple definition of ‘strSuit’ multiple definition of ‘strFace’ 라고 나와 있는 겁니다. 해석하면 strSuit, strFace 변수의 정의가 중복되었다는 건데, 어디서 중복되었는지를 찾질 못하고 이틀을 헤매었습니다. 원인도 모른 채 이렇게 수정해보고 저렇게…

  • 18일 새벽부터 DDOS 공격을…

    제 블로그를 호스팅하는 Codex 서버가 지난 18일 새벽부터 DDOS 공격을 받았었습니다. 어떤 한 해커가 Codex 운영자에게 해킹 용도의 계정 발급을 신청하였고, 이를 거절당하자 DDOS 공격을 감행한 걸로 알려지고 있습니다. 저는 이 사실을 확인한 즉시 이전에 사용하던 미리내 계정으로 긴급 복구하였습니다. Codex 에서 지원하는 백업 스케줄 기능 덕분에 18일 0시에 백업된 파일이 있었지요. 그리고 약 42시간…

  • 리눅스(우분투)에서 부경대학교 무선랜 접속하기

    이 글은 부경대학교 무선랜을 리눅스(Ubuntu 10.04 기준)에서 접속하는 방법에 대하여 작성되었습니다. 무선랜 활용 TIP :: http://www.pknu.ac.kr/files/wirelesslan/wirelesslan_guide.pdf자주하는 질문(FAQ) :: http://www.pknu.ac.kr/files/wirelesslan/wirelesslan_faq.pdf 단계 1 “시스템 -> 기본설정 -> 네트워크 연결” 실행 단계 2 “무선” 탭 선택 -> “추가” 버튼 클릭 단계 3 연결 이름에 “PKNU-WLAN” 입력 -> “무선” 탭에서 SSID 값에 “PKNU-WLAN” 입력 단계 4 “무선 보안” 탭에서…

  • 올블로그의 잡글에 대한 견해 차이

    올블로그의 잡글에 대한 골빈해커(골빈해커 님 글로 이동하기)님과 jungsolo(jungsolo 님 글로 이동하기)님의 글을 모두 읽으면 누구 말이 옳은지를 떠나서 어째서 이런 견해 차이가 생겼을까 하는 의문이 생긴다. 골빈해커 님의 견해는 상대적으로 보수적인 블로거들의 견해다. 그들은 자신의 블로거에 특정 주제를 부여하고 그에 맞는 전문적인 글을 주로 올린다. 그것은 검색사이트에서 얻을 수 있는 정보보다 좀 더 정확하고 전문적이며…

  • C :: typedef으로 함수 포인터를…

    Dll Injection으로 Brute Force를 하려고 공부하던 차에 함수 포인터를 활용하는 방법을 알게 되었습니다. 일반적으로 C 언어는 절차 지향 언어, 함수 지향 언어라고 알려져 있어서 C++의 클래스 구현이 안 된다고 배웁니다만, 이 함수 포인터를 이용하면 충분히 클래스를 구현할 수 있을 것 같습니다. 실제로 커널 등의 여러 소프트웨어에서 이 방법을 쓰는 것 같구요. 함수 포인터를 선언하려면 우선…

  • 접근성과 디자인… JavaScript로 해결될까?

    “블로그 용어를 우리말로…”로 이동하기 이전에 블로그에서 쓰이는 용어를 우리말로 바꾸는 것에 글을 썼다. 지금도 그 생각에 변함이 없고, 그것을 지키고 있다. 하지만, 그 글에 달린 댓글에서 미처 생각지 못한 것을 알게 되었다. 블로그는 우리나라만의 것이 아니다. 그리고 한글만을 쓰는 것도 아니다. 외국에도 염연히 블로그가 존재하고, 사실 블로그는 외국에서 들어온 것이다. 그런데 내가 지나치게 우리말만을 쓰자고…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다