15장 BOA 웹서버 구동하기
1. 커널 설치 및 패치
1.1. Boa Web Server 설치
Boa Web 서버란
보아 웹서버는 아파치와 같은 강력한 성능을 자랑하지는 않지만 임베디드 기기 에서 웹 서비스를 제공하기 위한 용도로는 매우 적은 크기의 서버 프로그램이다.
크기가 매우 작기 때문에 기능의 제한은 있으나 기본적인 HTML 문서의 전달하 는 HTTP 프로토콜과 CGI를 기본적으로 갖추고 있다.
보아 웹 서버의 공식 홈페이지는 http://www.boa.org 이다.
보아 웹 서버의 현재 버전은 0.94.13 이다.
다음의 설명은 Boa Web 서버를 이지보드에 설치하기 위한 문서이다.
준비 조건으로 arm용 크로스 컴파일러가 설치되어 있어야 한다.
Boa Web 서버를 이지 보드에 . . .
n 소스 설치
개발 호스트 시스템에 Boa Webserver 소스코드를 옮긴다.
모든 작업 디렉토리는 /ez/sw/app 이다.
제공한 CD의 /sw/sample/app 에서 boa-0.94.13.tar.gz 를 작업 공간으로 복사한 다.
# mkdir /ez/sw/app
# cp –a /mnt/cdrom/sw/sample/app/boa-0.94.13.tar.gz /ez/sw/app
# cd /ez/sw/app/
n 압축 해제
# tar -xfvz boa-0.94.13.tar.gz
n 압축을 풀고 나면 생성되는 boa-0.94.13/src 디렉토리로 이동한다.
# cd boa-0.94.13/src n 환경을 설정한다.
# ./configure
15장 BOA 웹서버 구동하기 n Makefile에서 CC와 CPP를 arm-linux-gcc로 바꾸어 준다.
[ 수정 전 ]
[ 수정 후 ]
n HOST에서 defines.h을 편집한다.
SERVER_ROOT 의 디렉토리는 원하는 위치를 정하면 된다
#define SERVER_ROOT “/usr/local/boa”
[ 수정 전 ]
[ 수정 후 ]
n 모두 수정하였으면, boa 웹 서버를 컴파일 한다.
# make clean
# make all
n 컴파일 후, boa-0.94.13/boa.conf 를 편집한다.
User nobody Group nobody
ErrorLog /usr/local/boa/log AccessLog /usr/local/boa/log
ServerName 192.168.10.200 (EZBOARD에서 사용하는 IP주소를 입력한다.) DocumentRoot /usr/local/boa/html
DirectoryMaker /usr/local/boa/boa_indexer MemeType /usr/local/boa/mime.types
15장 BOA 웹서버 구동하기 n NFS 환경 설정에서 이지보드로 복사하기 [ 전원이 끄지면 내용이 삭제됨 ]
위와 같이 모두 수정하였다면 다음 파일들을 복사한다.
NFS 에 연결된 마운트 디렉토리가 /nfsez 라고 가정하자.
다음 디렉토리를 만든다.
# mkdir /usr/local/boa
boa 파일을 복사한다.
# cp –a ./src/boa /usr/local/boa/
boa_indexer 파일을 복사한다.
# cp –a ./src/boa_indexer /usr/local/boa/
boa.conf 파일을 복사한다.
# cp –a ./boa.conf /usr/local/boa/
/etc/mime.types 파일을 복사 한다.
# cp –a /etc/mime.types /usr/local/boa/
log 파일을 만든다. [ vi 명령으로 빈 파일을 만든다. ]
# vi /usr/local/boa/log
/usr/local/boa/html 디렉토리를 만들고, 작성한 index.htm을 복사한다 [Index.html은 기본으로 보여줄 페이지이며 아무거나 상관없다.]
# mkdir /usr/local/boa/html
# cp –a /mnt/cdrom/sw/sample/app/index.htm /usr/local/boa/html/
nfs 디렉토리에 /usr/local/boa 를 복사한다.
# cp –a /usr/loca/boa /nfsez/
nfs를 마운트하고, 이동한다.
$ mount –t nfs –o nolock 192.168.10.20:/nfsez /mnt/nfs
$ cd /mnt/nfs
nfs 디렉토리에 복사된 boa 디렉토리를 이지보드로 다시 복사한다.
$ cp –a boa /usr/local/
이지보드에 복사된 boa 디렉토리로 이동한다.
$ cd /usr/local/boa
boa 웹 서버를 실행시키고, 실행 상태를 확인한다.
[ 여기서 /usr/local/boa는Server Root 디렉토리이다. ]
$ chmod +x boa
$ ./boa –c /usr/local/boa &
$ ps aux
15장 BOA 웹서버 구동하기 n 램디스크를 이용한 이지보드에 boa 웹 서버 올리기
위의 nfs를 이용한 방법은 boa 웹 서버를 올리기 위한 테스트 시 유용하게 사용된다. 하지만 이지보드 전원이 끄지면 복사한 모든 내용이 없어진다.
램디스크 이미지에 이를 복사하여 이지보드에 다운로드한다면 이런 문제는 해결될 것이다.
[ 램디스크 이미지 만들기 ]를 참고하여 /usr/local/boa 를 모두 복사하면 된다.
클라이언트에서의 접속 화면
Boa Webserver를 이지보드에 모두 포팅하였다면 클라이언트에서 접속하여 보자.
주소는 http:://192.168.10.200/index.htm 이다.
위 화면은 이지보드의 /usr/local/boa/html/index.htm 를 보여준다.