강좌 & 팁
EZ-S3C6410에서 실행되는 PHP 컴파일 방법
지난번에 EZ-S3C6410에서 lighttpd 실행할 수 있게 간단하게(?) 컴파일과 실행을 했었습니다.
현재 웹서버라고 하면, html 로만 무엇인가를 만들기엔 부족한 듯 싶습니다. 홈페이지를 만든다면 PHP로 동작되야 고급 기술이 사용된거 같고, 다양한 기능을 활용할 수 있습니다.
그래서 보드에서도 웹 서버를 돌려보자는 의지로... 처음에 Apache2 와 PHP를 연동해보자 하였으나...... 컴파일 및 이해가 부족하여 실패를 하였습니다. orz
하지만, 이번에 Apache2 대신 lighttd를 컴파일 하면서 PHP 를 연결할 수 있는 방법들을 찾아 적용해보게 되었습니다.
1. 작업 환경
개발서버 : Ubuntu 11.04 Server 버전 툴체인 : arm-linux-gnueabi-4.3.2.tar.gz
타겟보드 : 에프에이리눅스 EZ-S3C6410 보드
2. PHP 다운로드
php 기본 홈페이지 주소는 아래와 같습니다. 홈페이지 : http://www.php.net
현재 안정화된 버전은 5.3.8 입니다.
먼저 5.3.8 버전을 다운로드 받아서 테스트를 해보았습니다. 당연한 이야기지만, 에러가 나왔습니다.
해결해보려고 했습니다만, 중요한 문제점에 부딪치고 말았습니다. 결정적으로 컴파일을 할 때, gcc 버전이 4.3.4 이상이이어야 했습니다.
저희 툴체인의 gcc 버전은 4.3.3 이라서 컴파일이 안되는거였습니다.
그래서 결론적으로 최신 버전을 받지 못하고 PHP 5.3.1 버전을 찾아서 진행을 하였습니다.
다운로드 http://dpvps.googlecode.com/files/php-5.3.1.tar.gz
3. 다운로드 및 압축 풀기
파일을 다운로드 받도록 합니다.
$ wget http://dpvps.googlecode.com/files/php-5.3.1.tar.gz
다운로드 받은 파일의 압축을 풀어줍니다.
$ tar zxvf php-5.3.1.tar.gz
압축을 푼 다음 php-5.3.1 폴더 안으로 이동합니다.
$ cd php-5.3.1
4. libxml2 컴파일
php 를 컴파일 하기 위해서는 libxml2를 먼저 컴파일 해줘야 합니다. 아래 순서대로 진행을 해줍니다.
libxml의 공식 홈페이지 : http://xmlsoft.org/
홈페이지에서 libxml2 2.7.8 버전을 다운로드 받도록 합니다. (문서를 작성시 libxml2 2.7.8 이 최신 버전이었습니다.)
$ wget ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
압축을 푼 다음, 아래와 같이 configure 옵션을 줍니다. 참고로 설치 폴더는 /usr/local/libxml2 으로 지정하였습니다.
$ CC=arm-generic-linux-gnueabi-gcc \
configure 명령이 끝난 후, make 를 실행합니다.
$ make
make 가 끝나면 make install 명령을 통해서 설치를 합니다.
$ sudo make install
아마 별 어려움 없이 설치가 완료됐을겁니다.
5. PHP 컴파일
다시 본론으로 돌아와서 PHP 컴파일을 해줍니다.
PHP 옵션이 많지만, 기본적인 내용을 중심으로 설정을 하였습니다. 당연한 이야기지만, S3C6410 용으로 컴파일 하기 위해 arm-generic-linux-gnueabi을 사용합니다.
아래와 같이 configure 를 실행합니다.
$ CC=arm-generic-linux-gnueabi-gcc \
configure 명령이 끝난 후, make 를 실행합니다.
$ make
make 를 수행하다보면 중간에 에러가 납니다.
5. PHP 컴파일 오류 수정
오류 메시지 : make: *** [sapi/cgi/php-cgi] Error 1
(생략)
위와 같은 에러가 발생 시에는 아래와 같이 파일을 수정하도록 합니다.
$ vi ext/standard/dl.c
아래와 같이 #define HAVE_LIBDL 1 항목을 추가해주면 됩니다.
수정을 한 다음, 다시 make 명령을 수행합니다.
$ make
make 가 끝나면 make install 명령을 통해서 설치를 한다.
$ sudo make install
아래와 같은 메시지가 출력되면서 설치가 완료됩니다.
Installing PHP SAPI module: cgi
컴파일이 무사히 끝났습니다.
6. 환경 파일 복사
실수로 빼먹을 뻔 했네요. php 가 동작하기 위해서는 php.ini 라는 환경 파일을 필요로 합니다.
php-5.3.1 소스 폴더 내에 보면 php.ini-development 파일이 있습니다.
$ sudo cp -a php.ini-development /usr/local/php/lib/php.ini
컴파일은 끝? 그 다음엔....
PHP 컴파일은 무사히 끝났습니다. 컴파일을 끝냈으니, 이제는 EZ-S3C6410 보드에 올려보고 테스트를 해봐야 할 차례입니다.
PHP 실행하는 방법의 궁금증은 다음주로 미뤄놓겠습니다. 후훗~
|