php5.5 集成环境,windows下配置php5.5开发环境及开发扩展_PHP
网上的教程是比较多的,但是我发现在windows下的扩展开发比较少,而且大多都是php5.3版本以前的,今天我就给大家讲解一下php扩展开发,我就拿php5.5的版本来说明一下的了
windows环境(我个人的)
代码如下:
windows 8.1 企业版(mac os Boot Camp安装的)
Visual Studio 2012 版本
msysgit (http://msysgit.github.io/ 下载)
php-sdk-binary-tools-20110915.zip (http://windows.php.net/downloads/php-sdk/下载)
deps-5.5-vc11-x86.7z (http://windows.php.net/downloads/php-sdk/下载)
php-5.5.20 (http://php.net/downloads.php下载,这个版本不定自己选择)
第一步
解压php-sdk-binary-tools的二进制包,譬如我解压到我的C:\php-sdk文件夹中,现在的目录结构如下
代码如下:
C:\php-sdk
--bin
--script
--share
然后,这个是你已经安装完成了visual studio 2012,打开VS2012 Native Tools Command Prompt命令行工具
代码如下:
#进入目录
cd C:\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,现在的目录结构如下:
代码如下:
C:\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()函数,实现的效果如下
代码如下:
function widuu($string){
return "your first extension {$string} is ok";
}
进入扩展目录,生成扩展文件夹
代码如下:
cd C:\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,0,"your first extension %.78s is ok",arg_string);
RETURN_STRINGL(string,str_len,0);
}
然后找到PHP_FE(confirm_widuuweb_compiled, NULL),在下边注册你的函数
代码如下:
const zend_function_entry widuuweb_functions[] = {
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", "enable widuuweb support", "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查看
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php5.5 集成环境,windows下配置php5.5开发环境及开发扩展_PHP相关推荐
- vscode怎么配置python运行环境f5_VSCode下配置python调试运行环境的方法_python
这篇文章主要介绍了VSCode下配置python调试运行环境的方法,需要的朋友可以参考下 VSCode配置python调试环境 很久之前的一个东东,翻出来看看VSCode配置python调试环境 * ...
- php5.5开发环境配置,windows下配置php5.5开发环境及开发扩展
网上的教程是比较多的,但是我发现在windows下的扩展开发比较少,而且大多都是php5.3版本以前的,今天我就给大家讲解一下php扩展开发,我就拿php5.5的版本来说明一下的了 windows环境 ...
- Windows 下配置Apache+MySql+PHP环境(原创)
之前我自己也配置过PHP环境,不过用的是比较方便的集成软件,现在老师让自己动手配置一下非集成的,所以就边配置边写下教程希望能给需要的提供一些帮助.我是在虚拟机上装的,系统是WindowsXP 32bi ...
- mac php mysql 环境_Mac下配置PHP+MySql环境
localhos由于PHP apache环境在Mac OS上是自带的,所以不需要另处下安装包,只需要简单配置一下即可. 首先打开终端输入命令:sudo vim /etc/apache2/httpd.c ...
- python windows编程_在Windows下配置Python编程学习环境
一.需求: 之前是在Linux环境下进行Python的学习,每次开虚拟机觉得有点麻烦,希望可以直接在Windows的dos命令行下进行Python编程学习. 二.安装软件 直接从官网下载这两个软件安装 ...
- zookeeper 在 windows 下配置伪集群环境
安装启动zookeeper 在 Apache zookeeper 官网下载 https://www.apache.org/dyn/closer.cgi/zookeeper/ 下载后解压,我使用的是3. ...
- IS环境下配置PHP5+MySql+PHPMyAdmin
IIS环境下配置PHP5+MySql+PHPMyAdmin Posted on 2009-08-07 15:18 谢启祥 阅读(1385)评论(18) 编辑 收藏 虽然主要是做.net开发的,但是,时 ...
- Windows下 Apache+PHP5+MYSQL5+phpmyadmin 规范安装
< Apache+PHP5+MYSQL5+phpmyadmin> Windows下 Apache+PHP5+MYSQL5+phpmyadmin 规范安装 (绝对原创) 装PHP规范 ...
- windows下安装php5.5的redis扩展
windows下开发用的xampp集成的环境,想装个php-redis扩展,扩展的github地址: https://github.com/nicolasff/phpredis php_redis.d ...
最新文章
- echarts一个页面有多个tooltip_可视化工具ECharts入门
- 5.Multil-task lasso(多任务lasso回归分析)
- java 图片动画_java在窗口中添加图片做动画,怎么一闪一闪的?
- ubuntu 下安装qemu
- java8安装_科学网—Java JDK 8 的安装以及环境变量的配置(Linux and Windows) - 彭勇的博文...
- 送书 | 日读论文100+,AI都替代不了!辞去医药研发总监后,她成为了一名全职学术警察...
- Linux 中的零拷贝技术
- python无法导入模块_python怎么导入模块
- Vue-cli4 配置别名
- Sentinel 简介与API订阅发布
- 未来网闸的发展趋势(实际应用需求,解决方案)
- uni-app 跨端开发注意事项
- 解决办法:发生故障,这可能是有软件包被要求保持现状的缘故
- jtm 一键安装mysql_通过docker-compose配置快速实现zabbix安装
- python3爬虫用代理池爬虫搜狗微信文章
- AIS数据-渔船的货船的区分(Distinction between the cargo ships of fishing boats)
- PPT怎么母版怎么修改及应用
- c语言中f的作用是什么,c语言中f什么意思 c语言中f什么意思
- python中的类怎样理解_深入理解Python中的元类(metaclass)
- 如何在App Store用流量下载超过150M的软件?
热门文章
- Safari上使用WebRTC指南
- ffmpeg.c学习-1-框架分析及命令行解析
- 6.方法(go语言学习笔记)
- 腾讯极客挑战赛正式开赛!「鹅罗斯方块」开“玩”啦
- 谁动了我的工作效率?大咖分享融合通信背后的技术案例
- 解决创建maven项目后,不能创建scala
- 如何设计第三方账号登陆?
- leetcode 112. Path Sum, 113. Path Sum II | 112,113. 路径总和 I, II(Java)
- 【Java文件操作(六)】借助内存复制图片:ByteArrayOutputStream\ByteArrayInputStream\FileOutputStream\FileInputStream辨析
- MySQL(七)联结表