컴퓨터공부/Embedded

S3C2410 BoA PHP 올리기 체험수기 from kelp

achivenKakao 2006. 8. 27. 19:39

kelp 체험수기란에 재미있는 체험수기가 하나 올라왔네요 ^^

 

boa + php
글쓴이 : hosue (2006년 01월 18일 오후 02:25) 읽은수: 82 [ 체험수기  ] 
처음 글을 올리는군요 여기에서 많은 도움을 얻고 있어서 제 경험도 도움이 되길 바라며 글을 올립니다

 

s3c2410을 사용하는 보드에 boa를 올리고 php를 사용하는 것을 시도해보았습니다. 제가 perl 이나 cgi를 잘몰라서..
그런다고 php를 잘 아는 것도 아니지만 script언어를 조금 접해본 경험이 있어서 저한테는 이게 편할 거 같더군요.

cross-tool은 2.95.3으로 많이 사용하는 것으로 했고 php는 4.4.1, boa는 0.94.13입니다

 

1. boa


/boa-0.94.14rc21 : cross compile error, native compile pass
/boa-0.94.13       : cross compile pass, native compile fail 


boa, boa_indexer, boa.conf를 /usr/local/boa로 옮겨 한군데에 저장

boa.conf 설정 변경:

AccessLog /var/log/boa/access_log -> /tmp/access_log
  :/tmp 가 ram에 잡혀있기 때문에 쓸 수 있으므로, 아님 link를 걸어서  tmp로


bash# boa
gethostbyname:: Connection refused
  :ServerName 192.168.0.*** 으로 바꿈

"Your client does not have permission to get URL/yonca/index.html from this server..",
:user group을 root 로 변경
 boa.c파일의 setuid(0); 부분 comment 처리 
   고수아님 2년전의 지난 게시판의 글도 도움이 되었습니다

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 

index.html을 /var/www/에 넣고 테스트하니 되더군요.

 

 

2. php
이곳의 자료가 도움이 많이 되었습니다. 특별히 patch는 붙이지 않고 해도 되더군요.
http://www.menie.org/georges/uClinux/boa-php.html

 

./configure  --prefix= /home/*** --disable-all --target=arm-linux

위로 돌릴 경우  Makefile에 CC = gcc로 되어있음
export CC=arm-linux-gcc를 줬어도 마찬가지
vi Makefile로 CC=arm-linux-gcc, CPP=arm-linux-cpp로 수정

아래 파일의 부분을 comment처리
***************************
/Zend/zend_strtod.c

Commented out line 240 & 241

Exactly one of IEEE_LITTLE_ENDIAN IEEE_BIG_ENDIAN, VAX, or
IBM should be defined.

changed to;

//Exactly one of IEEE_LITTLE_ENDIAN IEEE_BIG_ENDIAN, VAX, or
//IBM should be defined.

Has now compiled

**************************
make install 했더니 cross-compile된 것들이 native dir에 모두 설치되어 버렸다 분명 --prefix를 주었는데 엉뚱한 곳으로 copy되었다
찾아보니 php bin파일이 sapi/cgi/안에 들어 있다 이것을 스트립

arm-linux-strip php
  전: -rwxr-xr-x   1 root  root  2514983 2006-01-18 11:56 php
  후: -rwxr-xr-x   1 root  root  934600 2006-01-18 12:13 php
php를 usr/lib/cgi-bin/에 옮기고 간단한 index.php파일을 /var/www에 하나 저장
web browser에서 http:/192.168.*.*/cgi-bin/php/index.php