나도, 우리집 사람도 회사의 친구들도 모두 스마트폰을 쓰고 있으면서 서로의 일정을 잘 알지 못했던 것 같다. 구글 칼렌더를 사용할 수도 있지만, 여러 사람들이 같이 사용할 수 있는, 나만의 서비스를 위해 칼렌더 서버를 사용해 보기로 했다.
그래서, iOS를 사용하는 아이폰, 아이패드뿐 아니라 안트로이드를 사용하는 폰과 테블렛을 쓰는 가족끼리, 회사내 팀원끼리 일정을 공유할 수 있는 멋잇는 칼렌더 서버(?)를 설치해 보기로 했다.
Calendar Server하면 Apple사의 CalDav를 떠올릴 수 있는데, 예전에 한번 Source를 가져다 Linux에 Porting해 봤지만, 쉽고 즐겁게 끝나는 일은 아니였다. 최근에 보다 쉽게 설치되는 DAViCal 패키지를 알게 되었고, 이번에 한번 사용해 보기로 했다.
준비물은
apache, php를 포함한 linux가 설치된 서버 또는 데스크탑이 필요하고,
설치과정은 크게
1.DAViCal설치 과정
2.PostgreSQL을 설치하는 과정
3.Apache와 PHP를 설정하는 과정
4.iPhone, Android Phone설정하는 과정
으로 나누어 진행했다.
먼저, 서버에 적용하기에 앞서, 사용하고 있는 노트북(Ubuntu 10.4 LTS 사용 중)에 설치해 테스트해 보기로 했다.
1. DAViCal설치 과정
Ubuntu에서는 package를 설치할때 터미널을 열고 apt-get을 사용하여 설치하거나, Synaptic Package Manager를 사용하여 설치하면 된다.
$ sudo apt-get install davicaldavical package를 설치하는데 필요한 packages들은 자동으로 선택되어 설치되므로 부가적으로 설치되는 package list를 보여주며 설치를 승인해 달라고 할때 y를 입력해서 승인만 하면 설치는 완료된다.
2.PostgreSQL을 설치하는 과정
2.1. PostgreSQL의 설치.
A. System/Administration/Synaptic Package Manager를 이용하여 "postgresql"을 검색하여 설치하거나, command line에 다음 명령을 입력하여 설치한다.
$ sudo apt-get install postgresql-8.4현재 Ubunutu에서 8.4버전이 공식적인 최신 프로그램인 postgreSQL은 MySQL보다 더 Enterprise DB에 가까운 기능을 가지고 있는 DB이며, MIT license로 제공되어 용도에 관계없이 제한없이 마음대로 사용할 수 있다.
설치가 완료되면 /var/lib/postgresql/8.4/main에 default database cluster생성된다.
A-1. default database cluster가 생성되지 않은 경우나 다른 위치에 생성하고 싶은 경우 다음과 같이 한다.
$ initdb /var/lib/postgresql/db(db가 저장되기를 원하는 위치 지정)필요에 따라 /etc/postgresql/8.4/main/postgresql.conf를 수정하여 port, max_connection등을 바꿀 수 있다.
B. 그런 다음, database실행에 앞서 데이터베이스 관리를 위해 기본적으로 생성되는 사용자인 postgres의 linux계정에 암호를 부여하기 위해 다음을 실행하다.
$ sudo passwd postgresC. 이제 database를 실행해 보자. Ubuntu의 경우 아래와 같이 init.d의 script을 사용하면 된다.
$ sudo /etc/init.d/postgresql-8.4 startD. 다음으로 database의 postgres계정에 암호를 부여하여 계정을 활성화 시킨다.
먼저, 다음과 같이 postgres linux계정으로 login한 다음
$ su - postgresdatabase계정에 암호를 설정하기 위해 다음을 실행한다.
$ psql -c "ALTER USER postgres WITH PASSWORD 'password'" -d template1이제, superuser를 사용하지 않아도 database에 대한 괄리가 가능하며, pgAdmin GUI를 통한 접근도 가능하게 된다.
2.2. DAViCal을 위한 설정.
A. postgres로 login한 상태에서, 먼저, DAViCal 0.9.3이상의 버전에서 기본으로 사용되는 db계정인 davical_app와 davical_dba를 만든다.
$ createuser davical_app (모든 질문에 no로 답한다.)$ createuser davical_dba (모든 질문에 no로 답한다.)B. 그런 다음, davical_app와 davical_dba가 davical database에 접근할 수 있도록 /etc/postgresql/8.4/main/pg_hba.conf파일을 열고,
$ sudo vi /etc/postgresql/8.4/main/pg_hba.confC. 다음 라인을 찾아
# local DATABASE USER METHOD [OPTIONS]그 아래에 다음을 추가하고
local davical davical_app trust
local davical davical_dba trust저장한다.
D. 이제 다음과 같이 davical에서 제공되는 script을 실행하여 database를 생성한다.
$ /usr/share/davical/dba/create-database.shdatabase생성이 완료되면 사용자 'admin'가 생성되고 암호가 'xxxxx'로 설정이 되었다고 화면에 나온다. 잊어버리지 말고 기록해 놓자.
실제 운영용으로 사용하고 싶은 경우 다음과 같이 tablespace를 분리하는 것이 더 바람직 하다.
E. 먼저, tablespace를 저장할 directory를 생성한다.
$ mkdir -p /var/lib/postgresql/data/davicalF. 다음으로 davical db를 저장할 tablespace륾 만들고,
$ psql -c "CREATE TABLESPACE calspace LOCATION '/var/lib/postgresql/data/davical'"G. davical database가 생성된 후, alter database를 써서 tablespace를 변경한다.
$ psql -c "ALTER DATABASE davical SET TABLESPACE calspace"서버의 나머지 설치부분은 다음회를 참고하세요. ^^
No comments:
Post a Comment