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