본문 바로가기

PHP

[PHP 확장모듈] 리눅스(CentOS) PHP 확장 모듈 개발 환경 구성 및 개발 - 1

반응형

리눅스(CentOS) PHP 확장 모듈 개발 환경 구성 및 개발 - 1

C 를 이용해 확장 모듈을 개발하고 ( module.so ) PHP 에서 사용을 하기 위해 진행.​

서버를 운용하기 위해 환경을 구성하는게 아닌 오직 확장 모듈의 개발만을 위한 환경 구성.

서버 운용을 위한 장비의 환경구성과는 다를수 있습니다.

해당 내용에서 쓰이는 OS 및 PHP 등의 버전.

OS : CentOS 6.5 64bit

( 공식 홈페이지에서 ios파일 다운 http://isoredirect.centos.org/centos/6/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso )

PHP : 5.3.3 ( 공식 홈페이지에서 소스 다운 http://kr1.php.net/releases/ )

​HTTPD(apache) : 2.2.26 ( 공식 홈페이지에서 소스 다운 http://mirror.apache-kr.org/httpd/ )

MySQL : yum 을 통해 기본 설치.​

1. 기본 설치된 버전 제거.

yum -y remove httpd* php* mysql*

위 명령어를 통해 OS 를 설치할 때 기본으로 설치된 불필요한 버전은 깔끔하게 제거해 주고 시작.

​2. MySQL 설치.

​내가 개발해야했던 모듈은 TCP 소켓 통신을 이용해 서버와의 연동이므로 MySQL 이 굳이 필요하지 않아 컴파일을 통해

설치를 진행하려고 하다가 그냥 yum 을 통해 설치.​

yum -y install mysql​

​​3. Apache 컴파일.

​다운받은 Apache 의 소스 경로에서 아래 명령어 수행.

./configure --prefix=/usr/local/apache2 --enable-module=so --with-mpm=worker --enable-dav --enable-so

훨씬 더 다양한 옵션이 많지만 서버를 운용하려는 장비도 아니고 오직 개발 진행 및 테스트를 목표로 하는 환경이므로

간략한 옵션만 줌.

EX> 만약 개발 하려는 모듈에 다른 라이브러리( ssl, sql 등등 )를 사용한다면 아래와 비슷하게 자신에게 필요한 것들을 포함해줘야 한다.

보다 자세한 옵션에 대해 궁금하면 구글링을 통해 쉽게 볼수 있다.​

​./configure --prefix=/usr/local/apache2 --enable-module=so --with-mpm=worker --enable-dav --enable-so --enable-rewrite --enable-dav=shared --enable-dav-fs=shared --with-included-apr

​./configure --prefix=/usr/local/apache2 --enable-so --enable-auth-digest --enable-authn-dbm --enable-authn-dbd --enable-authz-dbm --enable-dav --enable-dav-fs --enable-dav-lock --enable-deflate --enable-headers --enable-expires --enable-dumpio --enable-log-forensic --enable-rewrite --enable-cache --enable-file-cache --enable-disk-cache --enable-mem-cache --enable-unique-id --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-ssl --with-z=/usr/local --with-ssl=/usr/local/ssl --with-mpm=worker

configure 도중 에러가 생겼다면 70% 이상 사용하려는 라이브러리등이 없기 때문이니 당황하지 말고 에러문구를 정확히 확인후 해당 라이브러리를 yum 을 통해 설치해 주면 된다.

정상적으로 완료시,

make; make install 명령을 통해 컴파일 및 설치.

4. PHP 컴파일.

PHP 소스 디렉토리에서 아래 명령어 수행.

​./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-zlib-dir=/usr/local --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --with-libxml-dir=/usr/local --with-iconv --enable-ftp --with-libdir=lib64

모듈을 개발하고 아파치를 통해 실행이 되는지 정확한 확인을 위해 apache 관련 부분을 포함시켜 진행.

정상적으로 완료시.

make; make install 컴파일 및 설치 진행

5. PHP 테스트를 위해 아파치 설정 변경.

vi /usr/lcoal/apache2/conf/httpd.conf

위 명령어를 이용해 httpd.conf 파일을 열고 수정.

DirectoryIndex index.html ---수정--->DirectoryIndex index.html index.php

​AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

위와 같은 부분 찾아서 바로 아래쪽에 추가 !!

AddType application/x-httpd-php .php php3 .php4 .inc
AddType application/x-httpd-php-source .phps

​수정 및 추가 완료 후 :wq 를 통해 저장하고 파일 닫기.

php 소스 디렉토리에 가면 php.ini-development 라는 파일이 있는데 이걸 아파치의 conf 디렉토리에 복사한다.

cp php.ini-development /usr/local/apache2/conf/php.ini​

이름은 php.ini 로 변경 해서 복사.​

6. PHP 연동 테스트.

아파치와 PHP 가 모두 정상적으로 설치 됐는지 확인 해보자.

vi /usr/local/apache2/htdocs/test.php​

아래 내용 입력후 저장(:wq).

<?php

phpinfo();

?>

위와 같이 간단하게 php 페이지를 하나 만들어 준다.

 

/usr/local/apache2/bin/apachectl start

아파치를 기동한뒤 centos 에 기본으로 설치돼있는 파이어폭스를 키고

127.0.0.1 로 접속을 해본다.

화면에 PHP 에 대한 정보가 쭉- 나온다면 개발 및 테스트를 위한 환경이 모두 완료 됐다고 보면 된다.​

이제 다음 장에서 C 를 이용해 확장 모듈을 개발 해보고 테스트 해보자 !​

반응형