강좌 & 팁
EZ-S3C6410용으로 컴파일한 lighttpd 실행 방법
지난번에 EZ-S3C6410에서 lighttpd 실행할 수 있게 간단하게(?) 컴파일을 했었습니다. 이제 실행을 해볼 차례입니다.
apache 보다 빠르다고 하는 lighttpd를 실행하기 위해 설정 파일을 수정할 예정입니다. apache 처럼 간단할 줄 알았는데, 처음 접하는 환경이다보니 아직은 낯설게 느껴집니다.
EZ-S3C6410 보드에 arm 으로 컴파일된 lighttpd를 복사한 후, 아래 강좌를 보시면 됩니다.
1. 작업 환경
개발서버 : Ubuntu 11.04 Server 버전 툴체인 : arm-linux-gnueabi-4.3.2.tar.gz
타겟보드 : 에프에이리눅스 EZ-S3C6410 보드
lighttpd 버전 : lighttpd-1.4.29
2. 실행
lighttpd를 /usr/local/lighttpd 에 설치를 하였습니다.
[root@falinux /]$ cd /usr/local/lighttpd
위와 같이 4개의 폴더가 보입니다. 여기서 sbin 폴더 안에 실행 파일이 있습니다.
[root@falinux lighttpd]$ cd sbin
실행 파일 2개가 보입니다. arm-generic-linux-gnueabi-lighttpd 파일로 실행을 하면 됩니다.
편의상 arm-generic-linux-gnueabi-lighttpd 파일의 이름을 lighttpd 로 변경을 하였습니다.
아래와 같이 실행을 해봅니다.
[root@falinux sbin]$ ./lighttpd
하지만, 설정파일이 없다고 실행이 되지 않습니다. 컴파일을 한 후에 config 폴더를 복사를 한적이 있습니다. 이 안에 lighttpd.conf 라는 환경 설정 파일이 있습니다. 이 파일을 -f 옵션을 사용하여 포함시키도록 합니다.
[root@falinux sbin]$ ./lighttpd -f ../config/lighttpd.conf
위와 같이 에러가 납니다. 이제 lighttpd.conf 파일을 수정해줄 차례입니다.
3. config 폴더로 이동
이제 lighttpd.conf 파일이 있는 config 폴더로 이동합니다.
[root@falinux sbin]$ cd ../config/
여기서 불필요한 Makefile 들은 지워줍니다. 예전에는 lighttpd.conf 파일로만 설정을 하였는데, 신 버전에서는 역할에 따라서 파일들을 나눴습니다. conf.d 폴더나 vhosfs.d 폴더 안에 각각 설정할 수 있는 파일들을 넣어놨습니다. 이 부분은 나중에 PHP 와 연동할 때, 다시 알아보도록 하겠습니다.
4. lighttpd.conf 에 폴더 설정
먼저 파일을 열어보면 16번째 줄에 아래와 같이 되어 있습니다.
var.log_root = "/var/log/lighttpd"
lighttpd에서 참고하는 기본 폴더 설정입니다. 위의 내용을 수정해주거나 내용대로 폴더를 만들어주면 됩니다.
이 문서에서는 위와 같이 폴더를 만들었습니다.
[root@falinux config]$ mkdir -p /var/lig/ligh
4. lighttpd.conf 에러 수정
이제 본격적으로 파일을 수정할 차례입니다. 먼저 에러가 나왔던 315번 줄로 가서 파일을 수정하도록 하겠습니다.
[root@falinux config]$ vi lighttpd.conf
하나씩 실행을 해보면서 문제되는 부분을 몇가지 제거해보도록 하겠습니다. (왼쪽에 줄 번호는 lighttpd 버전에 따라 달라질 수 있습니다.)
오류 메시지 : can't handle '$HTTP[url] =~ ...' as you compiled without pcre support.
오류 메시지 : can't find username lighttpd
오류 메시지 : socket failed: Address family not supported by protocol
오류 메시지 : server.network-backend has a unknown value: linux-sendfile
이제 수정이 끝났습니다.
5. 임시 페이지 만들기
실행 전에 웹페이지가 들어있는 폴더를 먼저 확인할 필요가 있습니다. conf 파일에서 내용을 수정하지 않았다면 아래와 같습니다.
var.server_root = "/srv/www"
server.document-root 가 html 파일을 실행할 장소입니다.
[root@falinux /]$ cd /srv/www/
그 다음엔 index.html 파일을 만들어줍니다.
[root@falinux htdocs]$
파일 내용을 아래와 같이 적어줍니다. 간단하게 test 라고 적었습니다.
<html>
파일을 저장하면 됩니다.
6. 실행
이제 다시 lighttpd를 실행할 차례입니다. lighttpd 폴더로 이동하여 실행을 해줍니다.
[root@falinux /]$ cd /usr/local/lighttp/
아무런 오류 메시지가 없다면 실행된 것입니다.
[root@falinux sbin]$ ps
위와 같이 lighttpd 항목이 보이면 정상적으로 된 것입니다.
7. 웹 브라우저 접속
일반 PC에서 웹 브라우저를 실행한 다음, 보드 IP 로 접속을 합니다. 아래와 같은 화면을 볼 수 있습니다.
컴파일 완료
lighttpd 1.4.29 버전을 실행하기 위해 컴파일을 하고 환경 설정 파일까지 수정해보았습니다.
강좌를 쓰면서 테스트를 해야하기 때문에 문서를 작성하는데 시간이 꽤 소모되는 편입니다. 가급적 보기 쉽게 하려고 강좌를 작성하고 있습니다.
다음번엔 php를 컴파일 한 다음, lighttpd 랑 연동하는 법에 대해서 찾아뵙도록 하겠습니다.
이 정도면 임베디드 보드로도 웹 서버를 구축할 수 있을것만 같네요. ㅋㅋ
|