linux-2.6.32 mini2440 개발판에 웹 서버 이식 (21)

11157 단어 webserver
편집자: 사실은 웹 서버 서버를 구축하는 것입니다. 단지 여기는 boa+cgic로 이루어진 것입니다
1. boa 소프트웨어를 이식하는 데 사용되는 소프트웨어는 boa-0.94.13이다.tar.gz 먼저 현재 디렉터리로 압축을 풀기 #tar-zxvfboa-0.94.13.tar.gz cd/boa-0.94.13/src  #./configure 수정 Makefile 수정 31,32행 CC=arm-linux-gcc CPP=arm-linux-g+-E 현재 디렉터리 아래boa를 수정합니다.c의 225~227줄을 직접 삭제하면 원어는if(setuid(0)!=-1){ DIE() }
compat를 수정합니다.h 120 행을 다음과 같이 변경#define TIME_OFFSET(foo) (foo)->tm_gmtoff 컴파일#make 최적화#arm-linux-strip boa
2. cgic 라이브러리 이식 cgic205.tar.gz
압축 풀기 현재 디렉터리가 수정되면 Makefile은 다음과 같이 수정됩니다. (빨간색은 수정됨) CFLAGS=-g-Wall CC=arm-linux-gcc AR=arm-linux-ar RANLIB=arm-linux-ranlib LIBS=-L./-lcgic
all: libcgic.a cgictest.cgi capture
install: libcgic.a  cp libcgic.a/usr/local/lib  cp cgic.h/usr/local/include  @echo libcgic.a is in/usr/local/lib. cgic.h is in/usr/local/include.
libcgic.a: cgic.o cgic.h  rm -f libcgic.a  $(AR) rc libcgic.a cgic.o  $(RANLIB) libcgic.a
#mingw32 and cygwin users: replace .cgi with .exe
cgictest.cgi: cgictest.o libcgic.a  $(CC) $(CFLAGS) cgictest.o -o cgictest.cgi ${LIBS}
capture: capture.o libcgic.a  $(CC) $(CFLAGS) capture.o -o capture ${LIBS}
clean:  rm -f *.o *.a cgictest.cgi capture
 
번역하다
#make
최적화
#arm-linux-strip capture
 
웹 서버 설정
파일 시스템에서 새 디렉터리/웹,/etc/boa 디렉터리 만들기
방금 생성된 boa와 boa를conf 프로필을 해당 디렉터리로 복사
#cp/boa /sbin
#cp/boa.conf  /etc/boa
#vi boa.conf
아래 빨간색은 수정된 내용입니다.
# Boa v0.94 configuration file

# File format has not changed from 0.93

# File format has changed little from 0.92

# version changes are noted in the comments

#

# The Boa configuration file is parsed with a lex/yacc or flex/bison

# generated parser.  If it reports an error, the line number will be

# provided; it should be easy to spot.  The syntax of each of these

# rules is very simple, and they can occur in any order.  Where possible

# these directives mimic those of NCSA httpd 1.3; I saw no reason to 

# introduce gratuitous differences.



# $Id: boa.conf,v 1.25 2002/03/22 04:33:09 jnelson Exp $



# The "ServerRoot" is not in this configuration file.  It can be compiled

# into the server (see defines.h) or specified on the command line with

# the -c option, for example:

#

# boa -c /usr/local/boa





# Port: The port Boa runs on.  The default port for http servers is 80.

# If it is less than 1024, the server must be started as root.



Port 80 

# Listen: the Internet address to bind(2) to.  If you leave it out,

# it takes the behavior before 0.93.17.2, which is to bind to all

# addresses (INADDR_ANY).  You only get one "Listen" directive,

# if you want service on multiple IP addresses, you have three choices:

#    1. Run boa without a "Listen" directive

#       a. All addresses are treated the same; makes sense if the addresses

#          are localhost, ppp, and eth0.

#       b. Use the VirtualHost directive below to point requests to different

#          files.  Should be good for a very large number of addresses (web

#          hosting clients).

#    2. Run one copy of boa per IP address, each has its own configuration

#       with a "Listen" directive.  No big deal up to a few tens of addresses.

#       Nice separation between clients.

# The name you provide gets run through inet_aton(3), so you have to use dotted

# quad notation.  This configuration is too important to trust some DNS.



#Listen 192.68.0.5 

#  User: The name or UID the server should run as.

# Group: The group name or GID the server should run as.



User root Group root



# ServerAdmin: The email address where server problems should be sent.

# Note: this is not currently used, except as an environment variable

# for CGIs.



#ServerAdmin root@localhost 

# ErrorLog: The location of the error log file. If this does not start

# with /, it is considered relative to the server root.

# Set to /dev/null if you don't want errors logged.

# If unset, defaults to /dev/stderr



ErrorLog /dev/console # Please NOTE: Sending the logs to a pipe ('|'), as shown below,

#  is somewhat experimental and might fail under heavy load.

# "Usual libc implementations of printf will stall the whole

#  process if the receiving end of a pipe stops reading."

#ErrorLog "|/usr/sbin/cronolog --symlink=/var/log/boa/error_log /var/log/boa/error-%Y%m%d.log"



# AccessLog: The location of the access log file. If this does not

# start with /, it is considered relative to the server root.

# Comment out or set to /dev/null (less effective) to disable 

# Access logging.



AccessLog /dev/null # Please NOTE: Sending the logs to a pipe ('|'), as shown below,

#  is somewhat experimental and might fail under heavy load.

# "Usual libc implementations of printf will stall the whole

#  process if the receiving end of a pipe stops reading."

#AccessLog  "|/usr/sbin/cronolog --symlink=/var/log/boa/access_log /var/log/boa/access-%Y%m%d.log"



# UseLocaltime: Logical switch.  Uncomment to use localtime 

# instead of UTC time

#UseLocaltime 

# VerboseCGILogs: this is just a logical switch.

#  It simply notes the start and stop times of cgis in the error log

# Comment out to disable.



#VerboseCGILogs 

# ServerName: the name of this server that should be sent back to 

# clients if different than that returned by gethostname + gethostbyname 



ServerName yellow 

# VirtualHost: a logical switch.

# Comment out to disable.

# Given DocumentRoot /var/www, requests on interface 'A' or IP 'IP-A'

# become /var/www/IP-A.

# Example: http://localhost/ becomes /var/www/127.0.0.1

#

# Not used until version 0.93.17.2.  This "feature" also breaks commonlog

# output rules, it prepends the interface number to each access_log line.

# You are expected to fix that problem with a postprocessing script.



#VirtualHost 

# DocumentRoot: The root directory of the HTML documents.

# Comment out to disable server non user files.



DocumentRoot /web 

# UserDir: The name of the directory which is appended onto a user's home

# directory if a ~user request is recieved.



#UserDir public_html # DirectoryIndex: Name of the file to use as a pre-written HTML

# directory index.  Please MAKE AND USE THESE FILES.  On the

# fly creation of directory indexes can be _slow_.

# Comment out to always use DirectoryMaker



DirectoryIndex index.html 

# DirectoryMaker: Name of program used to create a directory listing.

# Comment out to disable directory listings.  If both this and

# DirectoryIndex are commented out, accessing a directory will give

# an error (though accessing files in the directory are still ok).



#DirectoryMaker /usr/lib/boa/boa_indexer 

# DirectoryCache: If DirectoryIndex doesn't exist, and DirectoryMaker

# has been commented out, the the on-the-fly indexing of Boa can be used

# to generate indexes of directories. Be warned that the output is 

# extremely minimal and can cause delays when slow disks are used.

# Note: The DirectoryCache must be writable by the same user/group that 

# Boa runs as.



# DirectoryCache /var/spool/boa/dircache 

# KeepAliveMax: Number of KeepAlive requests to allow per connection

# Comment out, or set to 0 to disable keepalive processing



KeepAliveMax 1000 

# KeepAliveTimeout: seconds to wait before keepalive connection times out



KeepAliveTimeout 10 # MimeTypes: This is the file that is used to generate mime type pairs

# and Content-Type fields for boa.

# Set to /dev/null if you do not want to load a mime types file.

# Do *not* comment out (better use AddType!)



MimeTypes /etc/mime.types 

# DefaultType: MIME type used if the file extension is unknown, or there

# is no file extension.



DefaultType text/plain 

# CGIPath: The value of the $PATH environment variable given to CGI progs.



CGIPath /bin:/usr/bin:/usr/local/bin:/usr/sbin:/sbin 

# SinglePostLimit: The maximum allowable number of bytes in 

# a single POST.  Default is normally 1MB.



# AddType: adds types without editing mime.types

# Example: AddType type extension [extension ...]



# Uncomment the next line if you want .cgi files to execute from anywhere

# AddType application/x-httpd-cgi cgi 

# Redirect, Alias, and ScriptAlias all have the same semantics -- they

# match the beginning of a request and take appropriate action.  Use

# Redirect for other servers, Alias for the same server, and ScriptAlias

# to enable directories for script execution.



# Redirect allows you to tell clients about documents which used to exist in

# your server's namespace, but do not anymore. This allows you to tell the

# clients where to look for the relocated document.

# Example: Redirect /bar http://elsewhere/feh/bar



# Aliases: Aliases one path to another.

# Example: Alias /path1/bar /path2/foo



#Alias /doc /usr/doc 

# ScriptAlias: Maps a virtual path to a directory for serving scripts

# Example: ScriptAlias /htbin/ /www/htbin/



ScriptAlias /cgi-bin/ /web/cgi-bin


3. 웹에서 cgi-bin 디렉터리를 만들고 컴파일된 cgic 라이브러리 파일(capture와 cgic)과 테스트 파일 cgicctest를 만듭니다.cgi 다운로드/웹/cgi-bin 아래
boa를 실행하고 PC의 브라우저에서 입력하십시오http://192.168.1.107/cgi-bin/cgictest.cgi 테스트 가능
4. 저는 TQ 파일 시스템의 웹을 직접 시험해 보았고 정상적으로 작동하는지 테스트했습니다.

좋은 웹페이지 즐겨찾기