EZ-S3C6410에서 PHP 실행 방법

 

지난주에 EZ-S3C6410용으로 php를 컴파일 하였습니다.

 

 

 

중요해요!!
EZ-S3C6410 보드에 arm 으로 컴파일된 lighttpd와 php를  복사한 후, 아래 강좌를 진행하셔야 합니다.

 

 

1. 작업 환경

 

개발서버 : Ubuntu 11.04 Server 버전

툴체인 : arm-linux-gnueabi-4.3.2.tar.gz
           (ftp://ftp.falinux.com/toolchain_ramdisk/recommendation/gcc-4.3.2/arm-linux-gnueabi-4.3.2.tar.gz 파일 사용)

 

타겟보드 : 에프에이리눅스 EZ-S3C6410 보드

웹서버 : lighttpd 1.4.29

 

 

2. PHP 실행 테스트

 

EZ-S3C6410 보드에 접속을 합니다.

(사전에 6410용으로 컴파일한 php 파일을 먼저 복사해놓으셔야 합니다.)

 

php 설치 폴더(/usr/local/php)로 가서 bin 안에 php-cgi 를 실행시키면 됩니다.

 

[root@falinux ~]$ cd /usr/local/php
[root@falinux php]$ cd bin
[root@falinux bin]$ ./php-cgi
./php-cgi: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory

 

libxml2 관련 라이브러리가 없어서 실행 에러가 납니다.

 

컴파일을 했던 서버로 이동해서 libxml2 라이브러리 파일을 복사해 와야 합니다.

서버에서 libxml2 설치 위치는 /usr/local/libxml2 였습니다.

라이브러리 파일들을 압축합니다.

 

$ cd /usr/local/libxml2
$ cd lib
$ tar zcvf libxml2_lib.tar.gz libxml2.*

 

nfs 를 통해서 가져온 파일들을 /lib 폴더로 복사한 다음, 압축을 풀어준다.

 

[root@falinux ~]$ cp -a /mnt/nfs/libxml2_lib.tar.gz /lib/
[root@falinux ~]$ cd /lib
[root@falinux lib]$ tar zxvf libxml2_lib.tar.gz

 

다시 php 를 실행하면, 에러가 나타나지 않습니다.

 

[root@falinux ~]$ cd /usr/local/php
[root@falinux php]$ cd bin
[root@falinux bin]$ ./php-cgi

 

에러가 발생하지 않아야 정상적으로 실행할 준비가 되었다는 것입니다.

 

 

3. modules.conf 파일 수정

 

PHP 만 실행했다고 PHP 파일을 불러올 수 있는게 아닙니다.

 

웹서버는 구동하는 lighttpd에서 php를 호출할 수 있게 설정을 해줘야합니다.

 

이번엔 lighttpd 폴더로 이동을 합니다.

 

[root@falinux ~]$ cd /usr/local/lighttpd
[root@falinux lighttpd]$ cd config
[root@falinux config]$ ls
lighttpd.conf      vhosts.d           conf.d          modules.conf

 

환경 설정 파일인 ligttpd.conf 파일이 아닌 옆에 있는 modules.conf 파일을 수정해줘야합니다.

 

________________________________________________________________

 

modules.conf 파일 : fastcgi 활성화 (주석을 제거해줍니다.)

 

수정 전
36

## - mod_fastcgi       -> conf.d/fastcgi.conf

 

수정 후
36

- mod_fastcgi       -> conf.d/fastcgi.conf

 

________________________________________________________________

 

modules.conf 파일 : 모듈 활성화 (주석을 제거해줍니다.)

 

수정 전
42
43
44
45
46
47
48
49
50
51

server.modules = (
  "mod_access",
#  "mod_alias",
#  "mod_auth",
#  "mod_evasive",
#  "mod_redirect",
#  "mod_rewrite",
#  "mod_setenv",
#  "mod_usertrack",
)

 

수정 후
42
43
44
45
46
47
48
49
50
51

server.modules = (
  "mod_access",
  "mod_alias",
  "mod_auth",
  "mod_evasive",
  "mod_redirect",
  "mod_rewrite",
  "mod_setenv",
  "mod_usertrack",
)

 

________________________________________________________________

 

modules.conf 파일을 수정했으면, 활성화 시켰던 fastcgi 설정 파일을 수정해줘야합니다.

 

conf.d/fastcgi.conf 파일 : 활성화 (주석을 제거해줍니다.)

 

수정 전
22
23
24
25
26
27
28
29
30

#fastcgi.server = ( ".php" =>
#                   ( "php-local" =>
#                     (
#                       "socket" => socket_dir + "/php-fastcgi-1.socket",
#                       "bin-path" => server_root + "/cgi-bin/php5",
#                       "max-procs" => 1,
#                       "broken-scriptfilename" => "enable",
#                     )
#                   ),

 

주석을 제거한 다음, php-cgi 의 경로를 적어줍니다.

 

수정 후

22
23
24
25
26
27
28
29
30

fastcgi.server = ( ".php" =>
                  ( "php-local" =>
                    (
                      "socket" => socket_dir + "/php-fastcgi-1.socket",
                      "bin-path" => "/usr/local/php/bin/php-cgi",
                      "max-procs" => 1,
                      "broken-scriptfilename" => "enable",
                    )
                  ),

 

 

4. 실행

 

수정한 다음, llighttpd 폴더로 이동하여 실행을 해줍니다.

 

[root@falinux /]$ cd /usr/local/lighttp/
[root@falinux config]$ cd ../sbin/
[root@falinux sbin]$ ./lighttpd -f ../config/lighttpd.conf

 

아무런 오류 메시지가 없다면 실행된 것입니다.

 

확인해 보기 위해 phpinfo를 통해 테스트 해보도록 하겠습니다.

 

html 파일이 실행되도록 지정된 폴더로 이동합니다.

예전에 설치했을 때, 기본 경로는 /srv/www/htdocs였습니다.

 

아래와 같이 vi 명령으로 phpinfo.php 파일을 생성해줍니다.

[root@falinux /]$ cd /srv/www/htdocs
[root@falinux htdocs]$ vi phpinfo.php

 

그 다음, 아래와 같이 작성을 해줍니다.

 

<?
     phpinfo();
?>

 

저장을 해서 빠져나옵니다.

 

5. 웹 브라우저 접속

 

이제 웹 브라우저를 키고, 보드의 ip 주소를 입력합니다.

보드 IP 주소를 192.168.100.100 이라고 임시로 지정하였습니다.

 

아래와 같이 입력을 해줍니다.

 

http://192.168.100.100/phpinfo.php

 

웹 페이지에 아래와 같이 php 정보가 나왔으면, 정상적으로 실행이 된 것입니다.

설치한 configure 옵션에 맞게 지원되는 php 문장을 작성하면 됩니다.

 

 

 

미션 완료

 

lighttpd 에 이어서 php 까지 포팅을 해봤습니다.

아직 php 의 다양한 옵션을 테스트 해보진 않았지만, 간단한 php 스크립트를 무난하게 소화합니다.

 

그리고 염려되었던 속도도 그렇게 느리지 않아서 기분이 좋습니다.

 

EZ-S3C6410을 다양하게 사용할 수 있는 부분 중에 웹 서버의 기능을 활용해본거 같아서 뿌듯합니다.