보아 웹 서버 설치하기

■ 개요 - BOA란?

보아 웹서버는 아파치와 같은 강력한 성능을 자랑하지는 않지만 임베디드 기기에서 웹 서비스를 제공하기 위한 용도로는 매우 적은 크기의 서버 프로그램 입니다.
크기가 매우 작기 때문에 기능의 제한은 있으나 기본적인 HTML 문서의 전달하는 HTTP 프로토콜과 CGI를 기본적으로 갖추고 있습니다.

■ 작업 환경

테스트 보드 : FALinux ESP-CX 보드 (EZ-X5, ESP-MMI 에서도 테스트 하였습니다.)
참고 문서 : FALinux 홈페이지 (htttp://www.falinux.com)
               자료실 > EZBOARD-M01 > 15장 BOA 웹서버 구동하기

■ BOA 설치

작업은 서버 또는 VMware 환경에서 진행하시면 됩니다.
아래 작업은 커널 2.6 대의 서버(192.168.10.26)에서 하였습니다.

먼저, 작업할 디렉토리를 만들어 줍니다. boa 라고 만들었습니다.

[root@arm26 /]# mkdir boa
[root@arm26 /]# chmod 777 boa

보아 홈페이지 (http://www.boa.org) 에서 BOA 최신 파일을 다운로드 하였습니다.
news 란에서 최신 버전인 boa-0.94.14rc2 파일을 다운로드 받았습니다.

boa-0.94.14rc21.tar.gz 파일 다운시 boa-0.94.14rc21.tar.tar로 되는 경우가 있으니 파일 이름을 변경하도록 합니다.

[root@arm26 boa]# mv boa-0.94.14rc21.tar.tar boa-0.94.14rc21.tar.gz

압축을 풀어줍니다.

[root@arm26 boa]# tar -zxvf boa-0.94.14rc21.tar.gz

압축이 풀어진 폴더로 이동합니다.

[root@arm26 boa]# cd boa-0.94.14rc21
[root@arm26 boa-0.94.14rc21]#

configure 후에 Makefile을 변경해 줘야하는데 옵션으로 configure 을 수행하면서 바꿔주도록 합니다.
CC 부분을 바꿔주면서 arm-linux-gcc 에서 arm-linux로 변경합니다.

[root@arm26 boa-0.94.14rc21]# CC=arm-linux-gcc ./configure --host arm-linux

위의 방법대로 옵션을 준 후에 별다른 수정없이 make 를 수행해줍니다.

[root@arm26 boa-0.94.14rc21]# make

make 가 끝난 후에 환경 설정 파일을 가져오도록 합니다. contrib/rpm/ 폴더 안에 존재합니다.

[root@arm26 boa-0.94.14rc21]# cp contrib/rpm/boa.conf ./

가져온 파일을 편집하도록 합니다.

[root@arm26 boa-0.94.14rc21]# vi boa.conf

보아 파일을 저장할 장소 또는 실행할 장소를 /usr/local/boa/ 로 정한 다음 아래와 같이 수정하였습니다.

48  User    nobody
49 Group nobody
62 ErrorLog /usr/local/boa/log
74 AccessLog /usr/local/boa/log
94 ServerName 192.168.10.### (이지 보드에서 사용하는 ip 주소 입력)
111 DocumentRoot /usr/local/boa/html
130 DirectoryMaker /usr/local/boa/boa_indexer
155 MimeTypes /usr/local/boa/mime.types

환경설정에서 지정한 위치에 boa 폴더를 만들어 줍니다.

[root@arm26 boa-0.94.14rc21 ]# mkdir /usr/local/boa

위에서 컴파일 했던 파일들을 복사해 줍니다.

[root@arm26 boa-0.94.14rc21 ]# cp -a ./src/boa /usr/local/boa/
[root@arm26 boa-0.94.14rc21 ]# cp -a ./src/boa_indexer /usr/local/boa/
[root@arm26 boa-0.94.14rc21 ]# cp -a ./boa.conf /usr/local/boa/
[root@arm26 boa-0.94.14rc21 ]# cp -a /etc/mime.types /usr/local/boa/
[root@arm26 boa-0.94.14rc21 ]#

빈 log 파일을 생성해줍니다.

[root@arm26 boa-0.94.14rc21 ]# vi /usr/local/boa/log

이제 실제로 웹파일을 저장할 수 있는 html 폴더를 생성합니다.

[root@arm26 boa-0.94.14rc21 ]# mkdir /usr/local/boa/html

임시로 사용할 index 페이지를 만들거나 복사해줍니다.

[root@arm26 boa-0.94.14rc21 ]# vi /usr/local/boa/html/index.html


hello!!





* 테스트를 위해 간단하게 표현 했을뿐, 기존에 만들어진 소스를 이용하셔도 됩니다.

간단하게 작성한 index.html 파일을 저장합니다.

이제 nfs 시스템을 통해 ESP-CX 보드에 넘겨줄 작업을 합니다.

[root@arm26 boa-0.94.14rc21 ]# cd /nfs

nfs 폴더안에 boa_file 폴더를 만들어서 usr/local/boa 에 정리했던 파일을 가져옵니다.

[root@arm26 nfs]# mkdir boa_file
[root@arm26 nfs]# chmod 777 boa_file
[root@arm26 nfs]# cp -a /usr/local/boa /nfs/boa_file/

이제 ESP-CX 보드로 부팅을 합니다.

nfs 명령을 사용하여 작업한 서버 환경에서 파일을 가져오도록 합니다.

[root@falinux /]$ mount -t nfs -o nolock 192.168.10.26:/nfs /mnt/nfs

nfs 마운트가 된 후에 boa_file 폴더를 보드의 /usr/local/ 밑에 복사해주도록 합니다.

[root@falinux /]$ cd /mnt/nfs
[root@falinux nfs]$ cp -a boa_file /usr/local/

/usr/local/로 이동한 후에 이름을 boa 로 변경해 줍니다.

[root@falinux boa]$ cd /usr/local/
[root@falinux local]$ mv boa_file boa

이제 boa 폴더로 이동후에 아래와 같이 실행해 줍니다.

[root@falinux local]$ cd boa
[root@falinux boa]$ chmod +x boa
[root@falinux boa]$ ./boa -c /usr/local/boa &
[root@falinux boa]$ ps aux

그 다음 웹 브라우저를 통해서 보드 아이피로 접속합니다.

예) http://192.168.10.###/index.html

웹페이지에 Hello!라고 뜨면서 웹페이지가 뜨면 boa 가 성공적으로 설치된 것을 확인 할 수 있습니다.

태그 : *웹 *보아 *BOA *ESP-CX