고급협동조합의 OSM
article thumbnail

이번 글에서는 테스트용 서버를 구동하는 방법을 설명하도록 하겠습니다.

 

 

1. 의존성 설치


(라즈베리 파이에서)
sudo apt-get install sqlite3 libsqlite3-dev ruby-dev ruby curl libicu-dev
sudo apt-get install zlib1g-dev libprotobuf-dev libexpat1-dev libgd2-xpm-dev
sudo gem install json sqlite3 sinatra sinatra-r18n rack-contrib thin

========== 코드 설명 ==========
1. 패키지를 설치한다.
2. 패키지를 설치한다.
3. gem을 이용해 패키지를 설치한다.

 

 

2. 데이터베이스 생성


데이터베이스를 만들기 전에, 편의를 위해 DB 파일을 옮기는 작업을 sh 파일로 구현하겠습니다.

(라즈베리 파이에서)
cd ~/osm/taginfo/sources/
nano move_db.sh

========== 코드 설명 ===========
1. ~/osm/taginfo/sources/로 이동한다.
2. move_db.sh라는 이름의 텍스트 파일을 생성하고, 연다.

파일 안에 다음 내용을 입력해 주세요.

 

mv $1/taginfo-*.db $1/*/taginfo-*.db ../../data/

cp ../../data/taginfo-history.db $1/

mv $1/download/*.bz2 ../../download/

cp taginfo-chronology.db $1/chronology/

 

(라즈베리 파이에서)
chmod 755 move_db.sh
mkdir -r files/chronology
wget https://taginfo.openstreetmap.org/download/taginfo-chronology.db.bz2
bunzip2 taginfo-chronology.db.bz2
rm taginfo-chronology.db.bz2
./move_db.sh files/

./update_all.sh files/
./update_all.sh files/
./move_db.sh files/

========== 코드 설명 ==========
1. move_db.sh 파일을 누구나 실행할 수 있도록 한다.
2. files 디렉토리를 만들고, 그 안에 chronology 디렉토리를 만든다.
3. Taginfo 홈페이지에서 taginfo-chronology.db.bz2 파일을 다운로드한다.
4. 다운로드한 파일의 압축을 푼다.
5. 압축 파일을 삭제한다.
6, 9. 매개변수로 'files/'를 전달해 move_db.sh 파일을 실행한다.
7 ~ 8. 매개변수로 'files/'를 전달해 update_all.sh 파일을 실행한다.

./updage_all.sh 두 번, ./move_db.sh 한 번은 매일 데이터베이스를 업데이트할 때마다 해 줍니다.

 

FIlezilla

그런 다음 개인 컴퓨터에 있는 DB 파일을 라즈베리 파이로 옮겨 줍니다.

 

 

3. 서버 구동


(라즈베리 파이에서)
cd ../web
thin start

========== 코드 설명 ==========
1. ../web으로 이동한다.
2. thin을 이용해 서버를 구동한다.

서버가 정상적으로 구동되었으면, (라즈베리 파이의 ip 주소):3000을 웹 브라우저에 입력합니다(ex. 192.168.0.15:3000). taginfo 사이트가 뜨면 성공입니다.

 

이 글까지만 읽어도 공개용 서버를 구축하는 것이 가능합니다만, 실제로는 Nginx를 추가로 이용하는 것이 좋습니다. thin으로 서버를 열고(3000번 포트), nginx를 이용해 80번 포트를 3000번 포트로 리다이렉트하는 방식으로 하면 됩니다.

profile

고급협동조합의 OSM

@고급협동조합

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!