BOA 마이그레이션

5511 단어

BOA 마이그레이션


1. 실험 환경


플랫폼
FS4412
원본 패키지
boa-0.94.13.tar.tar
교차 컴파일 도구 체인
arm-linux-

2, BOA 서버 마이그레이션

  • 압축해제 원본
    tar xvf boa-0.94.13.tar.tar
    cd boa-0.94.13
  • Makefile 수정
    $ ./configure    Makefile
    $ vi Makefile 
    수정 내용은 다음과 같다
    1、 
    CC = gcc   CC = arm-linux-gcc
    2、 
    CPP = gcc -E   CPP = arm-linux-gcc -E

  • linux 아래의 c시스템을 컴파일하려면 어법과 문법 분석 모듈을 포함해야 하고, Linux에서 자주 사용하는 것은bison과flex를 사용하기 때문에 이 두 모듈을 설치해야 한다
    $ apt-get install bison flex
    $ make 
    $ arm-linux-strip boa # boa 

  • 3, Boa 서버 구성

  • 디렉터리를 만듭니다
    mkdir /source/rootfs/etc/boa
  • boa 원본 디렉터리에 있는 boa.conf를/source/rootfs/etc/boa 디렉터리로 복사합니다
    cp boa.conf /source/rootfs/etc/boa
  • 프로필boa 수정.conf
    vim  /source/rootfs/etc/boa
    수정 내용은 다음과 같다. (1) Group의 수정 Group nogroup은 Group 0 (2) User nobody의 수정 User 0 (3) ScriptAlias의 수정 ScriptAlias/cgi-bin//usr/lib/cgi-bin/ScriptAlias/cgi-bin//www/cgi-bin/(5) DocumentRoot의 수정 DocumentRoot/var/www는 DocumentRoot/www(6) ServerName www.your이다.org.다음은 ServerName www.your입니다.org."gethostbyname::No such file or directory"(7) AccessLog 수정 AccessLog/var/log/boa/access_log는 #AccessLog/var/log/boa/access_log
  • 아래 설정과 boa.conf 구성은 ARM 루트 파일 시스템에서 작성됨
  • HTML 문서의 홈 디렉토리/www을 만듭니다
    mkdir /www
  • CGI 스크립트가 있는 레코드/www/cgi-bin을 만듭니다
    mkdir /www/cgi-bin

  • cgi를 사용할 수 없을 때 #AddType application/x-httpd-cgi cgi 를 AddType application/x-httpd-cgi cgi 로 변경합니다

    4, Boa 테스트

  • boa를 개발 루트 파일 시스템의/etc/boa로 복사합니다
    cp src/boa/source/rootfs/etc/boa
  • ubuntu 아래/etc/mime.types를 개발 루트 파일 시스템의/etc로 복사합니다
    cp /etc/mime.types/source/rootfs/et
  • 당신의 홈페이지를 index.html를 www 디렉터리로 복사합니다
  • boa를 실행하고 호스트 유람기에 개발판 주소를 입력하십시오
    
    # ./boa
    
    다음 정보가 나타나면 시작에 성공합니다
    [30/10/2011:19:10:36 +0000] boa: server version Boa/0.94.13
    [30/10/2011:19:10:36 +0000] boa: server built 10 30 2011 at 19:10:36
    [30/10/2011:19:10:36 +0000] boa: starting server pid=968, port 80

  • 5. 문제 및 해결 방법

  • 오류1.해결 방법:
    util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token 
    make: *** [util.o] Error 1 
  • 오류2:.해결 방법:
    //  src/compat.h 
    define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff 
    //  
    define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff 

  • .오류 3:.해결 방법:
    [01/Jan/1970:00:56:51 +0000] log.c:73 - unable to dup2 the error log: Bad file descriptor
  • 오류 4:.해결 방법:
    1、  src/log.c
    2if (dup2(error_log, STDERR_FILENO) == -1) {
           DIE("unable to dup2 the error log");
    }
     :
    /*if (dup2(error_log, STDERR_FILENO) == -1) {
           DIE("unable to dup2 the error log");
    }*/
  • 좋은 웹페이지 즐겨찾기