기존에 임베디드에서 웹서버로 많이 사용한 boa 대신 아파치 웹 서버를 올려 사용하는 방법을 소개하고자 합니다.

아파치 소스 내려 받기

http://apache.tt.co.kr/httpd/ 사이트에서 다음의 소스를 다운로드합니다.

apache_1.3.41.tar.gz

참고
  • 이 글이 작성되었을 때의 Apache 버전이 1.3.41 이라서 apache_1.3.41.tar.gz의 링크를 올렸습니다.
  • 본 문서는 업데이트 여부를 표시하기 전까지는 업데이트되지 않습니다.
  • 그러므로 이 버전보다 더 최신 버전을 다운로드 페이지에서 확인하십시오.

작업 환경

  • 리눅스 배포판 : FedoraCore-3
  • ARM툴체인 : arm-linux-gcc 3.4.3
  • ARM툴체인 : mipsel-linux-gcc 3.4.4

아파치 웹 서버 설치하기

작업 디렉토리는 다음과 같으며, 이 디렉토리는 사용자 임의의로 설정하면 됩니다.

/staff/tsheaven/ramdisk/gcc-3.4.3/src

참고우분투를 설치하였다면 다음을 확인 해 봐야 합니다.

[root@hw27:src]# cd /bin
[root@hw27:bin]# ls -al sh
lrwxrwxrwx 1 root root 4 2008-05-14 19:00 sh -> bash
[root@hw27:bin]#

만약 /bin/sh -> bash 로 링크되어 있지않다면 /bin/sh 링크파일을 삭제하고 위와 같이 링크를 해야 합니다.

[root@hw27:bin]# rm -rf sh
[root@hw27:bin]# ln -s bash sh
[root@hw27:bin]# ls -al sh
lrwxrwxrwx 1 root root 4 2008-05-14 19:00 sh -> bash
[root@hw27:bin]# cd /staff/tsheaven/ramdisk/gcc-3.4.3/src

다운받은 아파치 웹 서버 소스의 압축을 해지합니다.

[root@hw27:src]# tar -zxvf apache_1.3.41.tar.gz

정상적으로 풀렸다면 디렉토리로 들어가서 환경을 설정합니다.

[root@hw27:src]# cd apache_1.3.41/
[root@hw27:apache_1.3.41]# ./configure

Configuring for Apache, Version 1.3.41
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Creating Makefile in src
+ configured for Linux platform
+ setting C compiler to gcc
+ setting C pre-processor to gcc -E
+ using "tr [a-z] [A-Z]" to uppercase
+ checking for system header files
+ adding selected modules
+ using system Expat
+ checking sizeof various data types
+ doing sanity check on compiler and options
Creating Makefile in src/support
Creating Makefile in src/regex
Creating Makefile in src/os/unix
Creating Makefile in src/ap
Creating Makefile in src/main
Creating Makefile in src/modules/standard


[root@hw27:apache_1.3.41]# make
[root@hw27:apache_1.3.41]# vi configure

77 ##
78 ## determine platform id
79 ##
80 PLATFORM="`$aux/GuessOS`"
81

  // 를 다음과 같이 수정한다.

77 ##
78 ## determine platform id
79 ##
80 #PLATFORM="`$aux/GuessOS`"
81 PLATFORM="arm-whatever-riscix"

참고
  • 이부분을 수정하는 이유는 설치될 환경을 arm으로 고정시키기 위해서입니다.
  • 크로스 컴파일이므로 그냥 두면 i*86계열로 host pc 환경이 저장됩니다.
  • 만일 arm계열이 아닌 다른 cpu를 사용한다면
    src/helpers/GuessOS 파일의 내용을 살펴보기 바랍니다.
  • 내용중 해당 cpu에 대한 항목이 있으면 그 부분을 복사해서 PLATFORM을 교체합니다.
// 기존에 임베디드에서 웹서버로 많이 사용한 boa 대신 아파치 웹 서버를 올려 사용하는 방법을 소개하고자 합니다.


// 컴파일에 필요한 헤더파일을 만들기 위하여 gcc로 컴파일된 두개의 파일을 따로 복사해 놓습니다.

[root@hw27:apache_1.3.41]# mkdir temp
[root@hw27:apache_1.3.41]# chmod 777 temp
[root@hw27:apache_1.3.41]# cp -a src/main/gen_test_char tmep/
[root@hw27:apache_1.3.41]# cp -a src/main/gen_uri_delims tmep/

[root@hw27:apache_1.3.41]# file temp/gen_test_char 
temp/gen_test_char: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped
[root@hw27:apache_1.3.41]# file temp/gen_uri_delims 
temp/gen_uri_delims: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), not stripped
[root@hw27:apache_1.3.41]# 


gcc로 컴파일 된것을 모두 제거하고, 다시 configure 를 실행합니다.

[root@hw27:apache_1.3.41]# make distclean

configure는 테스트를 위한것과 램디스크에 포함하기 위한 두가지 방법으로 설명하겠습니다. 기본적으로 먼저 테스트하기 위한 configure를 실행하여 정상적으로 아파치 웹 서버가 올라가면 이를 다시 램디스크에 포함하기 위한 configure를 실행하시면 됩니다.

  1. 테스트하기 위한 configure 입니다.

    [ARM 일 경우]
    [root@hw27:apache_1.3.41]# LD=arm-linux-ld CC=arm-linux-gcc CPP=arm-linux-cpp STRIP=arm-linux-strip OBJCOPY=arm-linux-objcopy RANLIB=arm-linux-ranlib ./configure --prefix=/app/apache

    [MIPS 일 경우]
    [root@hw27:apache_1.3.41]# LD=mipsel-linux-ld CC=mipsel-linux-gcc CPP=mipsel-linux-cpp STRIP=mipsel-linux-strip OBJCOPY=mipsel-linux-objcopy RANLIB=mipsel-linux-ranlib ./configure --prefix=/app/apache

  2. 램디스크에 포함하기 위한 configure 이다.

    [ARM 일 경우]
    [root@hw27:apache_1.3.41]# LD=arm-linux-ld CC=arm-linux-gcc CPP=arm-linux-cpp STRIP=arm-linux-strip OBJCOPY=arm-linux-objcopy RANLIB=arm-linux-ranlib ./configure --prefix=/usr/local/apache

    [MIPS 일 경우]
    [root@hw27:apache_1.3.41]# LD=mipsel-linux-ld CC=mipsel-linux-gcc CPP=mipsel-linux-cpp STRIP=mipsel-linux-strip OBJCOPY=mipsel-linux-objcopy RANLIB=mipsel-linux-ranlib ./configure --prefix=/usr/local/apache
주의
  • --prefix=/app/apache 는 컴파일 후 실행시 절대 디렉토리를 참조합니다.
  • 따라서 반드시 타겟보드에서 사용할 위치를 생각하여 디렉토리 위치를 정해야 합니다.
  • 현재 /app/apache 라고 한것은 테스트를 위한 것이며,
  • 이후 타겟보드의 램디스크에 포함할 경우 /usr/local/apache 로 할 예정입니다.

configure를 실행하였다면 컴파일을 합니다.

[root@hw27:apache_1.3.41]# make
===> src
make[1]: Entering directory `/staff/tsheaven/ramdisk/gcc-3.4.3/src/apache_1.3.41'
make[2]: Entering directory `/staff/tsheaven/ramdisk/gcc-3.4.3/src/apache_1.3.41/src'
===> src/regex
arm-linux-gcc -I. -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
      -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` -DPOSIX_MISTAKE -c -o regcomp.o regcomp.c
arm-linux-gcc -I. -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
      -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` -DPOSIX_MISTAKE -c -o regexec.o regexec.c
arm-linux-gcc -I. -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
      -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` -DPOSIX_MISTAKE -c -o regerror.o regerror.c
arm-linux-gcc -I. -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
      -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` -DPOSIX_MISTAKE -c -o regfree.o regfree.c
rm -f libregex.a
ar cr libregex.a regcomp.o regexec.o regerror.o regfree.o
arm-linux-ranlib libregex.a
<=== src/regex
===> src/os/unix
arm-linux-gcc -c -I../../os/unix -I../../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
      -I../../lib/expat-lite -DNO_DL_NEEDED `../../apaci` os.c
arm-linux-gcc -c -I../../os/unix -I../../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
      -I../../lib/expat-lite -DNO_DL_NEEDED `../../apaci` os-inline.c
rm -f libos.a
ar cr libos.a os.o os-inline.o
arm-linux-ranlib libos.a
<=== src/os/unix
===> src/ap
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_cpystrn.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_execve.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_fnmatch.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_getpass.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_md5c.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_signal.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_slack.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_snprintf.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_sha1.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_checkpass.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_base64.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_ebcdic.c
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` ap_strtol.c
rm -f libap.a
ar cr libap.a ap_cpystrn.o ap_execve.o ap_fnmatch.o ap_getpass.o ap_md5c.o ap_signal.o ap_slack.o
       ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o ap_ebcdic.o ap_strtol.o
arm-linux-ranlib libap.a
<=== src/ap
===> src/main
arm-linux-gcc -c -I../os/unix -I../include -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT
       -I../lib/expat-lite -DNO_DL_NEEDED `../apaci` gen_test_char.c
arm-linux-gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite
       -DNO_DL_NEEDED `../apaci` -o gen_test_char gen_test_char.o -lm -lcrypt
./gen_test_char >test_char.h
/bin/sh: ./gen_test_char: cannot execute binary file
make[3]: *** [test_char.h] Error 126
make[2]: *** [subdirs] Error 1
make[2]: Leaving directory `/staff/tsheaven/ramdisk/gcc-3.4.3/src/apache_1.3.41/src'
make[1]: *** [build-std] Error 2
make[1]: Leaving directory `/staff/tsheaven/ramdisk/gcc-3.4.3/src/apache_1.3.41'
make: *** [build] Error 2


위와 같이 에러가 발생하면 다음과 같이 합니다.

[root@hw27:apache_1.3.41]# vi src/main/Makefil 

69   distclean: clean 
70   -rm -f Makefile 
71 
72   uri_delims.h: gen_uri_delims 
73   ./gen_uri_delims >uri_delims.h 
74 
75   gen_uri_delims: gen_uri_delims.o 
76   $(CC) $(CFLAGS) $(LDFLAGS) -o gen_uri_delims gen_uri_delims.o $(LIBS)
77 
78   test_char.h: gen_test_char 
79   ./gen_test_char >test_char.h 
80 
81   gen_test_char: gen_test_char.o 
82   $(CC) $(CFLAGS) $(LDFLAGS) -o gen_test_char gen_test_char.o $(LIBS) 
83 
      
                                                                    

73, 79라인을 다음과 같이 주석 처리 한다.

69   distclean: clean 
70   -rm -f Makefile 
71 
72   uri_delims.h: gen_uri_delims 
73   # ./gen_uri_delims >uri_delims.h <------- 주석 처리
74 
75   gen_uri_delims: gen_uri_delims.o 
76   $(CC) $(CFLAGS) $(LDFLAGS) -o gen_uri_delims gen_uri_delims.o $(LIBS)
77 
78   test_char.h: gen_test_char <------- 주석 처리
79   # ./gen_test_char >test_char.h 
80 
81   gen_test_char: gen_test_char.o 
82   $(CC) $(CFLAGS) $(LDFLAGS) -o gen_test_char gen_test_char.o $(LIBS) 
83 

위와 같이 주석처리 하였다면 gcc로 컴파일하여 임시 폴더에 복사해둔 두개의 파일은 src/main 폴더에 복사합니다.

 [root@hw27:apache_1.3.41]# cp -a temp/gen_test_char src/main/
 [root@hw27:apache_1.3.41]# cp -a temp/gen_uri_delims src/main/

복사를 하였다면 다음과 같이 실행을 합니다.

 [root@hw27:apache_1.3.41]# cd src/main

[root@hw27:main]# ./gen_test_char > test_char.h [root@hw27:main]# ./gen_uri_delims > uri_delims.h
[root@hw27:main]# vi test_char.h <------- 정상적으로 생성되었는지 확인합니다. ( 내용이 없으면 잘못 생성된 것입니다.)
[root@hw27:main]# vi uri_delims.h <------- 정상적으로 생성되었는지 확인합니다. ( 내용이 없으면 잘못 생성된 것입니다.)
[root@hw27:main]# cd ../../ 모두 정상적으로 되었다면 컴파일을 합니다. [root@hw27:apache_1.3.41]# make 정상적으로 컴파일이 되었다면 install을 합니다. [root@hw27:apache_1.3.41]# make install 1. 테스트용일 경우 [root@hw27:apache_1.3.41]# ls /app/apache bin cgi-bin conf htdocs icons include libexec logs man proxy 이 폴더를 /nfs로 복사합니다. [root@hw27:apache_1.3.41]# cp -a /app /nfs/

************* 이 부분 부터는 타겟보드에서 작업하는 내용입니다. ******************

타겟보드에서 nfs로 마운트합니다.
  
[root@falinux root]$ mount -t nfs -o nolock 192.168.xx.xx/nfs /mnt/nfs
[root@falinux root]$ cp -a /mnt/nfs/app/apache /app 

환경 설정
conf 디렉토리에 있는 httpd.conf 에서 다음 항목들을 찾아 아래와 같이 변경합니다.

[root@falinux root]$ cd /app/apache/conf
[root@falinux conf]$ vi httpd.conf


233   # Port: The port to which the standalone server listens. For
234   # ports < 1023, you will need httpd to be run as root initially.
235   #
236   Port 80
237 
238   #
239   # If you wish httpd to run as a different user or group, you must run
240   # httpd as root initially and it will switch. 
241   #
242   # User/Group: The name (or #number) of the user/group to run httpd as.
243   # . On SCO (ODT 3) use "User nouser" and "Group nogroup".
244   # . On HPUX you may not be able to use shared memory as nobody, and the
245   # suggested workaround is to create a user www and use that user.
246   # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET)
247   # when the value of (unsigned)Group is above 60000; 
248   # don't use Group "#-1" on these systems!
249   #
250   User nobody
251   Group nobody
252 
253   #
254   # ServerAdmin: Your address, where problems with the server should be
255   # e-mailed. This address appears on some server-generated pages, such
256   # as error documents.
257   #
258   ServerAdmin root@falinux
259 
260   #
261   # ServerName allows you to set a host name which is sent back to clients for
262   # your server if it's different than the one the program would get (i.e., use
263   # "www" instead of the host's real name).
264   #
265   # Note: You cannot just invent host names and hope they work. The name you 
266   # define here must be a valid DNS name for your host. If you don't understand
267   # this, ask your network administrator.
268   # If your host doesn't have a registered DNS name, enter its IP address here.
269   # You will have to access it by its address (e.g., http://123.45.67.89/)
270   # anyway, and this will make redirections work in a sensible way.
271   #
272   # 127.0.0.1 is the TCP/IP local loop-back address, often named localhost. Your 
273   # machine always knows itself by this address. If you use Apache strictly for 
274   # local testing and development, you may use 127.0.0.1 as the server name.
275   #
276   ServerName 192.168.10.133

452 # ErrorLog: The location of the error log file.
453 # If you do not specify an ErrorLog directive within a 
454 # container, error messages relating to that virtual host will be
455 # logged here. If you *do* define an error logfile for a 
456 # container, that host's errors will be logged there and not here.
457 #
458 #ErrorLog /usr/local/apache/logs/error_log
459 ErrorLog /dev/null


478 # The location and format of the access logfile (Common Logfile Format).
479 # If you do not define any access logfiles within a 
480 # container, they will be logged here. Contrariwise, if you *do*
481 # define per- access logfiles, transactions will be
482 # logged therein and *not* in this file.
483 #
484 #CustomLog /usr/local/apache/logs/access_log common
485 CustomLog /dev/null common




236, 250, 251, 276, 459, 485 라인을 확인 합니다.

Port 80 
User nobody 
Group nobody 
ServerName 192.168.10.133   <--- 타겟보드의 Local IP Address

ErrorLog /dev/null   <--- 로그 기록으로 인한 타겟보드의 용량 부족이 발생하므로
                          반드시 이렇게 처리 해 주어야 합니다.
CustomLog /dev/null common   <--- 로그 기록으로 인한 타겟보드의 용량 부족이 발생하므로
                          반드시 이렇게 처리 해 주어야 합니다.


실행

bin 디렉토리의 ./apachectl start 라고 하면 아파치가 시작됩니다.
아파치 데몬을 구동 중지 시키려면 ./apachectl stop 하면 됩니다.

[root@falinux conf]$ cd /app/apache/bin
[root@falinux bin]$ ./apachectl start
[root@falinux bin]$ ./apachectl start
./apachectl start: httpd started
[root@falinux bin]$ ps
PID Uid VmSize Stat Command
1 root 500 S init [3] 
2 root SWN [ksoftirqd/0]
3 root SW< [events/0]
4 root SW< [khelper]
5 root SW< [kthread]
55 root SW< [kblockd/0]
58 root SW< [khubd]
60 root SW< [kseriod]
73 root SW [pdflush]
74 root SW [pdflush]
75 root SW< [kswapd0]
76 root SW< [aio/0]
697 root SW [mtdblockd]
722 root SW< [kpsmoused]
737 root SW< [kmmcd]
911 root 432 S syslogd -m 0 
916 root 624 S inetd 
918 root 1260 S -bash 
919 root 476 S /sbin/getty -L tty1 115200 vt100 
1048 root SW< [rpciod/0]
1095 root 908 S /app/apache/bin/httpd 
1096 nobody 572 S /app/apache/bin/httpd 
1097 nobody 572 S /app/apache/bin/httpd 
1098 nobody 572 S /app/apache/bin/httpd 
1099 nobody 572 S /app/apache/bin/httpd 
1100 nobody 572 S /app/apache/bin/httpd 
1101 root 640 R ps 
[root@falinux bin]$ 

윈도우 익스플로우에서 다음과 같이 접속합니다.
http://192.168.10.133

테스트

타겟보드의 /app/apache/htdocs 폴더에서 다음과 같이 만듭니다.

$) cd /app/apache/htdocs
$) vi index.html

TEST APACHE

$) 익스플러에서 http://192.168.10.133로 접속하였을 경우 TEST APACHE가 뜨면 정상입니다. 2. 램디스크용일 경우 [root@hw27:apache_1.3.41]# ls /usr/local/apache bin cgi-bin conf htdocs icons include libexec logs man proxy 용량 줄이기 Strip 하기 [root@hw27:apache_1.3.41]# cd /usr/local/apache [root@hw27:bin]# ls -al total 1008 drwxr-xr-x 2 root root 4096 2008-05-14 20:26 . drwxr-xr-x 12 root root 4096 2008-05-14 20:05 .. -rwxr-xr-x 1 root root 62793 2008-05-14 20:26 ab -rwxr-xr-x 1 root root 5036 2008-05-14 20:26 apachectl -rwxr-xr-x 1 root root 24532 2008-05-14 20:26 apxs -rwxr-xr-x 1 root root 10527 2008-05-14 20:26 checkgid -rwxr-xr-x 1 root root 8875 2008-05-14 20:26 dbmmanage -rwxr-xr-x 1 root root 26219 2008-05-14 20:26 htdigest -rwxr-xr-x 1 root root 61071 2008-05-14 20:26 htpasswd -rwxr-xr-x 1 root root 763456 2008-05-14 20:26 httpd -rwxr-xr-x 1 root root 15596 2008-05-14 20:26 logresolve -rwxr-xr-x 1 root root 15046 2008-05-14 20:26 rotatelogs [root@hw27:bin]# arm-linux-strip ab [root@hw27:bin]# arm-linux-strip checkgid [root@hw27:bin]# arm-linux-strip htdigest [root@hw27:bin]# arm-linux-strip htpasswd [root@hw27:bin]# arm-linux-strip httpd [root@hw27:bin]# arm-linux-strip logresolve [root@hw27:bin]# arm-linux-strip rotatelogs [root@hw27:bin]# ls -al total 852 drwxr-xr-x 2 root root 4096 2008-05-15 10:57 . drwxr-xr-x 12 root root 4096 2008-05-14 20:05 .. -rwxr-xr-x 1 root root 47612 2008-05-15 10:56 ab -rwxr-xr-x 1 root root 5036 2008-05-14 20:26 apachectl -rwxr-xr-x 1 root root 24532 2008-05-14 20:26 apxs -rwxr-xr-x 1 root root 3708 2008-05-15 10:56 checkgid -rwxr-xr-x 1 root root 8875 2008-05-14 20:26 dbmmanage -rwxr-xr-x 1 root root 16892 2008-05-15 10:56 htdigest -rwxr-xr-x 1 root root 47084 2008-05-15 10:56 htpasswd -rwxr-xr-x 1 root root 671820 2008-05-15 10:56 httpd -rwxr-xr-x 1 root root 7856 2008-05-15 10:56 logresolve -rwxr-xr-x 1 root root 6796 2008-05-15 10:57 rotatelogs [root@hw27:bin]# 디렉토리 및 파일 삭제 [root@hw27:apache]# rm -rf man [root@hw27:apache]# rm -rf icon/* [root@hw27:apache]# rm -rf htdocs/* 환경 설정 conf 디렉토리에 있는 httpd.conf 에서 다음 항목들을 찾아 아래와 같이 변경합니다. [root@hw27:bin]# cd ../conf [root@hw27:conf]# vi httpd.conf Port 80 User nobody Group nobody ServerName 192.168.10.133 <--- 타겟보드의 Local IP Address

램디스크를 만들때 램디스크 이미지의 usr/local에 apache를 모두 복사하시면 됩니다.

끝으로 아파치 웹 서버를 포팅할 수 있게 도움을 주신 이은희님께 감사의 말씀을 드립니다.