Windows WAMP PHP 扩展开发
来源:互联网 发布:网络电视台直播系统 编辑:程序博客网 时间:2024/04/29 07:24
1.开发准备
安装WAMP,使用的版本为WampServer Version 2.5,其中PHP的版本为5.5.12。
WAMP安装目录:D:\wamp
apache目录:D:\wamp\bin\apache
php目录:D:\wamp\bin\php
下载PHP-5.5.12源码包,解压到任意目录。例如:E:\php-5.5.12
2.通过phpinfo()查询php版本的编译的相关信息,主要查看:
Compiler MSVC11 (Visual C++ 2012)
Architecture x86
Zend Extension Build API220121212,TS,VC11
PHP Extension Build API20121212,TS,VC11
从以上的信息可以看出WampServer 2.5中的php是通过MSVC11(VS2012)在x86(win32)进行编译且设置了TS(Thread Safe)属性。
所以在编译扩展插件时也需要使用相同的编译环境及TS设置(默认值为TS)
3.生成编译插件时需要的config.w32.h文件
打开“VS2012 开发人员命令提示”并进入E:\php-5.5.12目录;
执行buildconf.bat命令,该命令在当前目录下生成configure.js文件;
执行configure命令,生成E:\php-5.5.12\main\config.w32.h文件。
如果执行过程中出现bison相关的错误,说明你没有安装bison,可以打开configure.js文件并注释如下三行,再重新执行configure命令。
if (!PATH_PROG('bison')) {
ERROR('bison is required')
}
为什么可以这么操作,因为我们不需要编译PHP,只需要生成config.w32.h文件,以编译扩展插件。
4.插件编译文件准备
进入E:\php-5.5.12\ext目录,复制E:\php-5.5.12\ext\skeleton目录并重命名为你所需要开发插件的名字,如my_plugin;
将php_skeleton.h,skeleton.c和skeleton.dsp重命名为php_my_plugin.h,my_plugin.c和my_plugin.dsp;
分别打开上面的三个文件,将文件中的extname替换为my_plugin,EXTNAME替换为MY_PLUGIN(保证大小写一致);
将D:\wamp\bin\php\php5.5.12\dev\php5ts.lib复制到my_plugin目录。
5.编译插件及安装
使用VS2012打开my_plugin.dsp文件,选择Release_TS(生成Release版本)并配置编译为C代码(解决方案属性-配置属性-C/C++-高级-编译为-编译为 C 代码 (/TC));
编译解决方案并生成插件所对应的php_my_plugin.dll文件(位于E:\php-5.5.12\Release_TS目录);
将编译生成的dll文件复制到Wamp PHP扩展目录(D:\wamp\bin\php\php5.5.12\ext);
编辑D:\wamp\bin\apache\apache2.4.9\bin\php.ini文件,查找"extension="关键字并在PHP原有插件的后面添加"extension=php_my_plugin.dll";
特别注意:所编辑的php.ini不是D:\wamp\bin\php\php5.5.12\php.ini,因为Wamp初始化PHP时,读取位置在D:\wamp\bin\apache\apache2.4.9\bin\php.ini文件。
重启Apache服务器。
6.测试插件
如果插件加载成功,重启Apache服务器访问phpinfo()即可看到新添加的my_plugin插件。
生成my_plugin_test.php文件,放置到D:\wamp\www目录,文件内容如下:
<?php
echo confirm_my_plugin_compiled("my_plugin");
?>
使用浏览器访问上面新建的my_plugin_test.php文件,出现如下页面,说明插件运行正常:
Congratulations! You have successfully modified ext/my_plugin/config.m4. Module my_plugin is now compiled into PHP.
安装WAMP,使用的版本为WampServer Version 2.5,其中PHP的版本为5.5.12。
WAMP安装目录:D:\wamp
apache目录:D:\wamp\bin\apache
php目录:D:\wamp\bin\php
下载PHP-5.5.12源码包,解压到任意目录。例如:E:\php-5.5.12
2.通过phpinfo()查询php版本的编译的相关信息,主要查看:
Compiler MSVC11 (Visual C++ 2012)
Architecture x86
Zend Extension Build API220121212,TS,VC11
PHP Extension Build API20121212,TS,VC11
从以上的信息可以看出WampServer 2.5中的php是通过MSVC11(VS2012)在x86(win32)进行编译且设置了TS(Thread Safe)属性。
所以在编译扩展插件时也需要使用相同的编译环境及TS设置(默认值为TS)
3.生成编译插件时需要的config.w32.h文件
打开“VS2012 开发人员命令提示”并进入E:\php-5.5.12目录;
执行buildconf.bat命令,该命令在当前目录下生成configure.js文件;
执行configure命令,生成E:\php-5.5.12\main\config.w32.h文件。
如果执行过程中出现bison相关的错误,说明你没有安装bison,可以打开configure.js文件并注释如下三行,再重新执行configure命令。
if (!PATH_PROG('bison')) {
ERROR('bison is required')
}
为什么可以这么操作,因为我们不需要编译PHP,只需要生成config.w32.h文件,以编译扩展插件。
4.插件编译文件准备
进入E:\php-5.5.12\ext目录,复制E:\php-5.5.12\ext\skeleton目录并重命名为你所需要开发插件的名字,如my_plugin;
将php_skeleton.h,skeleton.c和skeleton.dsp重命名为php_my_plugin.h,my_plugin.c和my_plugin.dsp;
分别打开上面的三个文件,将文件中的extname替换为my_plugin,EXTNAME替换为MY_PLUGIN(保证大小写一致);
将D:\wamp\bin\php\php5.5.12\dev\php5ts.lib复制到my_plugin目录。
5.编译插件及安装
使用VS2012打开my_plugin.dsp文件,选择Release_TS(生成Release版本)并配置编译为C代码(解决方案属性-配置属性-C/C++-高级-编译为-编译为 C 代码 (/TC));
编译解决方案并生成插件所对应的php_my_plugin.dll文件(位于E:\php-5.5.12\Release_TS目录);
将编译生成的dll文件复制到Wamp PHP扩展目录(D:\wamp\bin\php\php5.5.12\ext);
编辑D:\wamp\bin\apache\apache2.4.9\bin\php.ini文件,查找"extension="关键字并在PHP原有插件的后面添加"extension=php_my_plugin.dll";
特别注意:所编辑的php.ini不是D:\wamp\bin\php\php5.5.12\php.ini,因为Wamp初始化PHP时,读取位置在D:\wamp\bin\apache\apache2.4.9\bin\php.ini文件。
重启Apache服务器。
6.测试插件
如果插件加载成功,重启Apache服务器访问phpinfo()即可看到新添加的my_plugin插件。
生成my_plugin_test.php文件,放置到D:\wamp\www目录,文件内容如下:
<?php
echo confirm_my_plugin_compiled("my_plugin");
?>
使用浏览器访问上面新建的my_plugin_test.php文件,出现如下页面,说明插件运行正常:
Congratulations! You have successfully modified ext/my_plugin/config.m4. Module my_plugin is now compiled into PHP.
0 0
- Windows WAMP PHP 扩展开发
- PHP安装MongoDB扩展-Windows Wamp版
- windows下wamp安装php-redis扩展
- windows下wamp安装php-memcache扩展
- Windows下PHP开发工具WAMP
- windows开发php扩展
- wamp安装pthreads扩展(PHP多线程) windows
- PHP扩展开发—windows
- wamp(windows+apache+mysql+php)开发环境搭建
- WAMP(Windows, Apache, MySql, PHP)开发环境配置
- 我的 PHP安装MongoDB扩展-Windows Wamp版 之路
- wamp安装pthreads扩展(PHP多线程)
- wamp安装pthreads扩展(PHP多线程)
- wamp安装pthreads扩展(PHP多线程)
- wamp环境PHP安装mongodb扩展
- win7 wamp环境安装php-redis扩展
- PHP Windows 扩展的开发(1)
- 在Windows上开发PHP扩展模块
- Oracle报错:ORA-00845: MEMORY_TARGET not supported on this system
- Hadoop Web项目--Mahout0.10 MR算法集锦
- windows下安装mysql
- jquery easyui树的简答构造+动态生成js全局变量
- [LeetCode 237] Delete Node in a linked list
- Windows WAMP PHP 扩展开发
- Android Service完全解析,关于服务你所需知道的一切(下)
- php加速
- 为Xcode添加空模板工程
- 去掉CI默认url中的index.php
- oracle运算符及单表查询
- 归档类与解归档类的属性以及方法的了解
- simpleDateFormat 使用
- 对DataGridView某行进行修改之后,保证光标显示仍在选中行上?