windows下配置php5.5开发环境及开发扩展

前端之家收集整理的这篇文章主要介绍了windows下配置php5.5开发环境及开发扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

网上的教程是比较多的,但是我发现在windows下的扩展开发比较少,而且大多都是PHP5.3版本以前的,今天我就给大家讲解一下PHP扩展开发,我就拿PHP5.5的版本来说明一下的了

windows环境(我个人的)

代码如下:

第一步

解压
PHP-sdk-binary-tools的二进制包,譬如我解压到我的C:\PHP-sdk文件夹中,现在的目录结构如下

代码如下:
PHP-sdk --bin --script --share

然后,这个是你已经安装完成了visual studio 2012,打开VS2012 Native Tools Command Prompt命令行工具

代码如下:
PHP-sdk #设置环境变量 bin\PHPsdk_setvars.bat #创建常用的PHP-sdk目录 bin\PHPsdk_buildtree.bat PHPdev

如果我们打开bin\PHPsdk_buildtree.bat文件就会发现它只创建到VC9,没有VC11,但是我们如果开发PHP5.5版本,我们需要的是VC11,这时候我们就要把C:\PHP-sdk\PHPdev\vc9复制一份到C:\PHP-sdk\PHPdev\vc11,现在的目录结构如下:

代码如下:
PHP-sdk\PHPdev\ --vc6 --vc8 --vc9 --vc11

因为我下载的deps-5.5-vc11-x86.7z,所以我要解压deps-5.5-vc11-x86.7z到C:\PHP-sdk\PHPdev\vc11\x86\deps文件夹下覆盖,里边都是我们需要的库文件和一些必要的工具等等。 然后,将我们下载的PHP-5.5.20.tar.bz2解压到C:\PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20文件夹中。

编译安装PHP

回到VS2012 Native Tools Command Prompt #进入PHP源目录文件夹 cd c:\PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20 buildconf #查看带的扩展和编译命令 configure --help PHP-sdk

如果你没有安装PHP,现在这里就帮助到你了,可以先编译安装一下PHP configure --disable-all --enable-cli 然后,你会看到Type 'nmake' to build PHP,然后编译 nmake 在C:\PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20\Release_TS文件夹下就生成PHP.exe文件,环境变量中加入这个路径,好在命令行中能使用PHP命令。

开发PHP的第一个扩展

假如我们要开发一个widuu()函数,实现的效果如下

代码如下:

进入扩展目录,生成扩展文件

代码如下:
PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20\ext #输入PHP ext_skel_win32.PHP --extname=扩展名称 PHP ext_skel_win32.PHP --extname=widuuweb
这时候我们在C:\PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20\ext就看到了自己的目录widuuweb,打开widuuweb\PHP_widuuweb.h,在 #PHP_MINFO_FUNCTION(widuuweb);下一行写入自己的函数,譬如我定义的是widuu()函数 PHP_FUNCTION(widuu); 打开PHP_widuuweb.c编写函数,在PHP_FUNCTION(confirm_widuuweb_compiled)下

代码如下:
PHP_FUNCTION(widuu){ char *arg_string = NULL; int arg_len,str_len; char *string; if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"s",&arg_string,&arg_len) == FAILURE){ return; } str_len = spprintf(&string,"your first extension %.78s is ok",arg_string); RETURN_STRINGL(string,str_len,0); }

然后找到PHP_FE(confirm_widuuweb_compiled,NULL),在下边注册你的函数

代码如下:
PHP_FE(confirm_widuuweb_compiled,NULL) /* For testing,remove later. */ PHP_FE(widuu,NULL) PHP_FE_END /* Must be the last line in widuuweb_functions[] */ };

修改C:\PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20\ext\widuuweb\config.w32,去掉 // ARG_ENABLE("widuuweb","enable widuuweb support","no"); 前边的注释,vs命令行,输入cd .. 到PHP-5.5.20目录中,输入下面的命令 buildconf --force #查看扩展 configure --help 如果,有错误,大家可以打开,目录下configure.js查看,我这个出现了错误,是configure.js的4791行, ARG_ENABLE("widuuweb","no"); */ 多了一个*/的注释,去掉就可以了,然后再输入 configure --help 就看到了,有一行 --enable-widuuweb enable widuuweb support 然后配置 configure --disable-all --enable-cli --enable-widuuweb=shared PHP动态扩展

其中--enable-widuuweb=shared动态扩展,正好与静态扩展相对。 然后输入nmake,完成后,我们在C:\PHP-sdk\PHPdev\vc11\x86\PHP-5.5.20\Release_TS目录下就发现了PHP_widuuweb.dll文件,可以放到环境中测试了。 如果你本地没有安装PHP环境,而是跟我一样只是编译了PHP,如果测试,我建议静态编译看效果 configure --disable-all --enable-cli --enable-widuuweb=static nmake 然后,你可以再Release_TS目录下,输入 PHP -r "echo widuu('widuu');" //输出"your first extension widuu is ok" ok,就说到这里,以后再慢慢来讲,有什么不懂的大家可以留言,基础的ZEND_API,大家可以去walu.cc查看

猜你在找的Windows相关文章