블로그(텍스트큐브) 서버를 직접 만들어보기 – 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

  • RSS 피드를 직접 만들어 보자. Feed43 활용…

    PC사랑 홈페이지의 포인트경매를 아시나요? 경매방식이 재미있고 제품들도 쓸만해서 제가 좋아하는 컨텐츠입니다. 예전에는 매일 홈페이지에 들어가서 경매가 어떻게 되어가는지 확인했지만, 이제는 RSS로 받아서 쉽게 확인하고 있습니다. Feed43을 이용하지요. Feed43에 대해 소개한 글들을 보면 어떻게 RSS를 만드는지 자세하게 나와있지 않아 참 힘들었습니다. 이번도 2시간의 삽질을 거쳐 간신히 RSS 피드를 만들었습니다. 2시간동안 삽질했더니 이제 어느정도 알겠더군요. 그래서 제가…

  • 무료 FTP 프로그램, FileZilla 사용 팁 하나!

    어제 FileZilla 포터블을 소개했습니다. 그런데 FileZilla를 써보시면 알겠지만 접속유지 기능을 사용한다 하더라도 오랫동안 대기 상태에 있으면 프로그램이 알아서 판단하여 로그아웃을 해버립니다. 그럴 때마다 일일이 마우스로 버튼을 누르면 꽤 귀찮지요. (전 귀찮던데요…) 그래서 팁 하나를 알려드리겠습니다. 로그아웃 한 상태에서 Ctrl+R을 눌러보시기 바랍니다. 그러면 이전에 로그인했던 계정으로 바로 연결될 것입니다. 대기 상태에서 로그아웃된 경우가 아니더라도, 어제 로그인했던…

  • 마이크로 프로세서 프로그래밍 :: 주차 관리 시스템

    오늘 마지막 시험을 준비하느라 지난 밤을 동아리방에서 꼬박 새었네요. 시험도 만족스러웠기에 기분 좋게 포스팅을… 지난 밤 같이 밤을 샌 선배들이 있습니다. 4학년 선배들이었는데, 마이크로 프로세서 프로그래밍 실습 발표를 준비하느라 정말 고생을 많이 하더군요. 아래는 그 결과물… 적외선 감지 센서를 이용하여 주차장에 주차할 수 공간이 얼마나 남았는지를 체크하는 시스템입니다. 주차장을 들어오고 나가는 것은 거리를 감지해서 구분하구요….

  • 펜티엄 2에서의 작업환경

    이전 글에서 소개했듯이 제가 현재 사용중인 컴퓨터는 펜티엄 2입니다. 그런데 간혹 펜티엄 2에서는 (성능이 아닌 디스플레이를 따져서)작업하기가 너무 번거롭지 않냐라고 물어보는 사람이 있습니다. 아마 저사양 컴퓨터의 낮은 해상도를 생각한 모양입니다. 그래서 제 컴퓨터의 작업환경을 살짝 보여드릴까 합니다. 위 그림은 바탕화면을 찍은 것입니다. 해상도는 1440*900의 와이드입니다. 오잉? 펜티엄 2에서 저 해상도가 나와? 라고 하실 분이 계실…

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

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

  • C :: [열혈강의 C 프로그래밍] p.115 char_add.c

    tothefelix 님의 블로그에서 아래의 코드를 가져왔습니다. 언뜻 보면 정상적인 코드인 것 같으나, 유심히 보면 자료형이 잘못된 것을 알 수 있습니다. 1바이트의 char 형 변수에 4바이트의 int 형 값을 넣는 오류입니다. 명백히 코드 상의 오류지요. 정말 열혈강의에 저런 코드가 예문으로 나와 있다면 무척 실망입니다. 역시 국내 C 레퍼런스로는 김상형 님의 “혼자 연구하는 C/C++“가 최고의 레퍼런스가 아닌가…

답글 남기기

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