메뉴 건너뛰기


Developer > Open Source
PHP Embeded 프로그램 만들기
 
개발환경 만들기

PHP Embeded 프로그램을 만들기 위해서는 컴파일을 위한 각종 해더 파일과 라이브러리가 필요합니다.
우선 http://www.php.net/ 에 가셔서 괜찮다고 생각하시는 버전의 소스를 다운받으세요.
만약 PHP자체의 컴파일이 어렵거나 귀찮다면 이미 컴파일 된 실행파일도 다운 받으세요.
저는 PHP 5.2.11을 다운받도록 하겠습니다.
그리고 컴파일러는 VC6을 사용하도록 하겠습니다.
PHP 컴파일을 VC6으로 하는지 몰라도 VC6에 관련된 파일에 소스에 많이 있습니다.
 
소스의 압축을 푼 다음 /sapi/embed 라는 디렉토리에 가시면 php_embed.c, php_embed.h와 php5embed.dsp 파일이 있습니다.
php5embed.dsp 파일을 이용해서 컴파일 환경을 맞춰 갈 수도 있겠지만 static lib를 만들도록 되어 있는 프로젝트 파일이여서 이야기할려는 내용과 좀 다르기도 하고 또, 처음부터 하나씩 한다는 의미에서 php_embed.c와 php_embed.h파일로 직접 작업환경을 만들어 보겠습니다.
php_embed.c와 php_embed.h파일을 원하는 디렉토리에 넣은 다음 php_embed.c 파일을 VC6에서 엽니다.
VC 환경을 다음과 같이 만드세요.
 
1. PHP 실행파일 Package의 압축을 푼 다음 그 디렉토리를 환경변수 PATH에 등록해 주세요.
   나중에 DLL들을 읽어와야 하기 때문입니다.
2. Include 디렉토리에 다음의 디렉토리를 추가해 주세요.
   <소스압축푼경로>\php-5.2.11\TSRM
   <소스압축푼경로>\php-5.2.11\Zend
   <소스압축푼경로>\php-5.2.11.tar\php-5.2.11
3. Project Settings 에서 Preprocessor definitions 에 다음을 추가해 주세요.
   ZTS
   ZEND_WIN32
   PHP_WIN32
   1.png
 
 
4. Project Settings 에서 C/C++ 탭에서 Category: Code Generation을 선택하고
   Release는 Multithreaded를 Deubg는 Debug Multithreaded를 선택하시고 확인눌러 주세요.
5. PHP 실행파일 Package 압축 푼 디렉토리에 가면 dev라는 디렉토리가 있는데 그 디렉토리에 있는 php5ts.lib 라는 파일을 임포트 시켜주세요.
   라이브러리 임포트 시키는 방법은 여러가지가 있겠지만 여러분이 익숙한 방법으로 임포트 시키세요.
   저는 그냥 Add files to project... 로 임포트시키겠습니다.
6. 스크립트로 사용하기 위해 다음과 같은 test.php 파일을 하나 만들어 주세요.
   ==================================================
   <? echo("Hello PHP World"); ?>
   ==================================================
8. 다음과 같은 main.c 파일을 하나 만들어서 프로젝트에 넣어 주세요.
   ==================================================
    #include <stdio.h>
    #include "php_embed.h"
    int main(int argc, char *argv[])
    {
         PHP_EMBED_START_BLOCK(argc, argv)
 
        zend_file_handle file_handle;
        file_handle.filename = "c:\\test.php";
        file_handle.type = ZEND_HANDLE_FILENAME;
        file_handle.free_filename = 0;
        file_handle.opened_path = NULL;
        php_execute_script(&file_handle, TSRMLS_C);
 
        PHP_EMBED_END_BLOCK();
 
        return 0;
    }
   ==================================================
   대충 이런 모습이 되겠네요.
   4.png
 
 
9. 이제 마지막으로 컴파일하고 실행해 보세요.

    3.png   
  
위와 같은 결과가 나왔나요?
첫번째 PHP Embeded 프로그램을 만드신것을 축하드립니다.
참 쉽죵~
 
다음 강좌에서는 좀더 세부적으로 들어가 보도록 하겠습니다.
 
 
Creative Commons License
Creative Commons License이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
Copyright 조희창(Nicholas Jo). Some rights reserved. http://bbs.nicklib.com