一、首先查看PHPinfo() 信息
PHP Version 5.4.34 Zend Extension Build API220100525,TS,VC9 PHP Extension Build API20100525,VC9 Thread Safety enable
线程安全,VC9编译,5.4.34版本
二、开发前准备工作
PHP 5.3-5.4 :Visual C++ 9.0(Visual Studio 2008) 安装Cygwin(下载地址:http://www.cygwin.com/),虚拟linux环境 PHP编译后的程序和编译前的源码(下载地址:http://windows.PHP.net/download/) 编译后的程序路径:PHP-5.4.45-Win32-VC9-x86\ 编译前的源码路径:PHP-5.4.45-src\ 下载PHP sdk文件,http://windows.PHP.net/downloads/PHP-sdk/
1、解压PHP-sdk-binary-tools-20110915.zip里面的文件,将bison.exe所在的bin目录添加的系统path
中将PHP-5.4.45-Win32-VC9-x86\dev\PHP5ts.lib 复制到PHP-5.4.45-src\Release_TS\PHP5ts.lib 新建PHP-5.4.45-src\main\config.win32.h,内容如下: #define SIZEOF_LONG 4 #define PHP_COMPILER_ID "VC9" "VC9"对应VC9
2、找到PHP源码目录, PHP-5.4.45-src\ext\ext_skel_win32.PHP
PHP;">
/*
This script can be used on Win systems
) Make sure you have CygWin installed
) Adjust the $cygwin_path to match your installation
) Change the environment cariable PATHEXT to include .PHP
) run ext_skel --extname=...
the first time you run this script you will be asked to
associate it with a program. chooses the CLI version of PHP.
*/
$cygwin_path = 'D:\Program Files\cygwin\bin';
这里改成你的cygwin安装目录。
3、运行cmd,进入PHP源码目录, PHP-5.4.45-src\ext,运行命令PHP ext_skel_win32.PHP --extname=myPHPexs
记得将PHP.exe 所在目录加入path,--extname=你的扩展名字,
4、用vs2008 打开myPHPexs.dsp,解决方案配置改为Release,执行生成命令
顺利的话将生成PHP_myPHPexs.dll文件,我的将PHP_myPHPexs.dll生成再了PHP源码根目录的Release_TS文件夹中
5、将PHP_myPHPexs.dll放到你PHP的扩展目录,再PHP.ini中加上extension=PHP_myPHPexs.dll
6、新建PHP脚本文件test.PHP,内容如下
代码如下:
PHPexs_compiled('test');
7、运行测试文件,出现如下内容说明,成功了
代码如下:
PHPext/config.m4. Module 23 is now compiled into PHP.