一.必要软件

Cygwin http://www.cygwin.com/ php-5.4.28-src.zip http://windows.php.net/download/ deps-5.4-vc9-x86.7z http://windows.php.net/downloads/php-sdk/ php-sdk-binary-tools-20110915.zip http://windows.php.net/downloads/php-sdk/ VS2008 VS2008ProEdition9.0 wamp 这是我是在CSDN下载。注意要对应上PHP版本。 下载时候需要注意PHP VC版本,VS2008是VC9版本,刚开始装的是我下载了VS2010结果编译出来的dll版本跟PHP VC版本对不上。 上面软件我已经分享到网盘,懒得一个个下载的可以直接到这里下载: Windows下搭建PHP扩展开发环境

二.软件安装及环境配置

安装VS2008,我安装完之后的目录为: D:\Program Files\Microsoft Visual Studio 9.0 安装之后设置环境变量[PATH]: D:\Program Files\Microsoft Visual Studio 9.0\VC\bin;D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE; 解压php-sdk-binary-tools-20110915.zip,我解压后的路径是 F:\C-PHP\php-sdk 解压之后设置环境变量[PATH]:F:\C-PHP\php-sdk\bin; 进入在cmd窗口切换到 F:\C-PHP\php-sdk\bin运行以下命令:

phpsdk_setvars.batphpsdk_buildtree.bat php54dev

运行成功,打开文件目录F:\C-PHP\php-sdk,里面多了个文件php54dev。打开php54dev目录你会看到有vc6,vc8,vc9三个目录,这3个目录里面均有x64,x86两个目录分别对应64位与32位操作系统。我的环境为vc9\x86. 接下来解压deps-5.4-vc9-x86.7z到F:\C-PHP\php-sdk\php54dev\vc9\x86目录下。原来这个目录下的deps目录下的所有子目录均是空目录,解压后,复制进很多模块/扩展所需的库文件。 下一步,解压PHP源代码php-5.4.28-src.zip到:F:\C-PHP\php-sdk\php54dev\vc9\x86\php-5.4.28-src 切换到cmd窗口,进入php源码目录:F:\C-PHP\php-sdk\php54dev\vc9\x86\php-5.4.28-src 运行命令:

buildconfconfigure

执行configure时候可能会出现一些错误,提示找不到文件.这时候你可以搜索你的VS安装目录跟sdk目录找到缺失文件对应的目录,将路径添加到环境变量中。

三.创建PHP扩展骨架(hello_world);

打开F:\C-PHP\php-sdk\php54dev\vc9\x86\php-5.4.28-src\ext目录下有ext_skel和ext_skel_win32.php两个文件,分别是linux、windows下的扩展骨架搭建工具。 我们现在是在Windows中搭建PHP扩展开发环境,所以使用的是ext_skel_win32.php。用它生成的新扩展骨架。

php ext_skel_win32.php --extname=hello_world

注意运行改命令时候请确保php.exe是可访问的在PATH配置的环境变量中,否则不能运行。我的wamp安装在D盘,路径为D:\wamp\bin\php\php5.4.3,需要添加的环境变量中。 以上一切正常,在F:\C-PHP\php-sdk\php54dev\vc9\x86\php-5.4.28-src\ext目录下,会自动建立一个hello_world文件夹,我们的hello_world扩展骨架已经完成,接下来在VS2008中编辑函数。

四.在VS2008中开发,编译PHP扩展

用VS2008打开上面创建的项目hello_world. 设置项目属性->配置属性->C/C++->代码生成: 设置运行库:多线程 DLL (/MD) 设置项目属性->配置:切换到Release_TS 设置项目属性->配置属性->C/C++->高级,设置编译为:编译为 C 代码 (/TC) 设置项目属性->配置属性->链接器->常规,设置输出文件:Release_TS/php_hello_world.dll。 [此项为设置编译后的dll文件位置,相对于骨架的位置] 设置项目属性->配置属性->链接器->常规,增加附加库目录:D:\wamp\bin\php\php5.4.3\dev [假如不设置这项的话,编译时候会提示找不到php5ts.lib] 1.修改hello_world.h 扩展的新函数: 在PHP_FUNCTION(confirm_hello_world_compiled); 行后添加一行

PHP_FUNCTION(confirm_hello_world_compiled);   /* For testing, remove later. */
PHP_FUNCTION(helloWorld); // 新增的行

2.修改hello_world.c 在数组zend_function_entry hello_world_functions[]增加一行

const zend_function_entry hello_world_functions[] = {PHP_FE(confirm_hello_world_compiled,  NULL)       /* For testing, remove later. */PHP_FE(helloWorld, NULL) // 新增的行PHP_FE_END  /* Must be the last line in hello_world_functions[] */
};

在PHP_FUNCTION(confirm_hello_world_compiled)后添加我们的新函数

PHP_FUNCTION(helloWorld){  php_printf("Hello World !");
}

修改完成,项目调试切换到Release_TS,按快捷键F5开始调试。调试成功的话在hello_world项目下,会多出一个Release_TS文件夹,这个文件夹就是刚刚设置dll的生成目录,将Release_TS下的php_hello_world.dll复制到:D:\wamp\bin\php\php5.4.3\ext,并在php.ini中加上hello_world这个扩展:extension=php_hello_world.dll,重启Apache,打印phpinfo();就可以看到hello_world这个扩展; 新建php测试文件,t.php:

helloWorld();

保存文件,然后通过浏览器访问,这是就可以看到刚才在hello_world.c 打印的 hello World!了。 至此一切安装,编译,运行完毕,上面是参考baidu,google的一些安装方法并参照自身安装过程写的,假如有不合理的地方希望指出。

转载于:https://my.oschina.net/sakmon/blog/393942

Windows下搭建PHP扩展开发环境相关推荐

  1. 第01章 Windows下搭建Python集成开发环境

    网上有很多资料是关于搭建Python开发环境的,由于Python的可移植性好,所以我们可以在windows系统.Linux系统甚至OSX系统下搭建.由于自己对Linux.OSX不熟,所以我是在wind ...

  2. Windows下搭建ARM11裸机开发环境(1):工具安装

    By: Ailson Jack Date: 2019.05.04 个人博客:http://www.only2fire.com/ 本文在我博客的地址是:http://www.only2fire.com/ ...

  3. Windows下搭建ARM11裸机开发环境(3):Eclipse+JLink调试代码

    By: Ailson Jack Date: 2019.05.17 个人博客:http://www.only2fire.com/ 本文在我博客的地址是:http://www.only2fire.com/ ...

  4. 如何在Windows下搭建Qt安卓开发环境?

    一.导读 本文描述如何在Windows下搭建Qt安卓开发环境,由于Qt维护的安卓开发环境和安卓开发环境在很大程度上不兼容,所以在选择Qt版本的时候需要注意:在JDK和Android SDK环境的选择上 ...

  5. linux qemu运行windows,用qemu搭建CentOS 6 for colinux虚拟系统——《Windows下搭建CentOS 6开发环境之一》...

    用qemu搭建CentOS 6 for colinux虚拟系统 一.安装的软硬件环境 操作系统: Windows XP SP3 硬件环境: CPU  AMD 速龙AthlonII X3 445 (3. ...

  6. Windows下搭建ffmpeg+VS2008开发环境详细教程【转】

    本文转载自:http://www.voidcn.com/article/p-vxdntdgc-bkq.html 由于个人是从事音视频开发相关的工作,所以也把自己的一些过程写下来,方便大家以及自己查看, ...

  7. 最全Windows下搭建go语言开发环境以及开发IDE

    1.下载 并且 安装/解压Golang 下载选择对应的版本 https://www.golangtc.com/download 本人是win64位的下载的go1.9.2.windows-amd64.z ...

  8. windows下搭建OpenGL ES开发环境

    硬件上需要兼容OpenGL 2.0的显卡, Windows XP or Windows Vista . 1. 安装vc2005或更高版本,安装后会有opengl的库. 2. 安装shader分析工具  ...

  9. 详细讲解如何在windows下搭建react-native的开发环境(包括在设备上安装和运行react-native app )!

    第一步(安装基础软件) 1.安装Python2.7,可到官网下载(注意目前不支持Python 3版本)==>>Here 2.安装Node.js 同样到官网下进行下载,还有中文官网,非常ni ...

  10. windows下搭建hadoop+eclipse开发环境

    我的环境:windows8+hadoop1.1.2+eclipse4.3(linux为centerOS6.4) 实现步骤 下载eclipse.hadoop,提取hadoop中的hadoop-eclip ...

最新文章

  1. Python:尝试对知乎网验证码进行处理
  2. .net MySql
  3. 梁勇 java教材 编程练习题 第二章 2.6 键盘 读取一个在0 到 9999 之间的整数,并将该整数的各位数字相加。...
  4. Vue 视频播放插件vue-video-player
  5. Logic-算法-XX部队XX侦察队员
  6. 2012年开发者该做的11件事
  7. python nltk.download报错_python 文本转语音机器学习之nltk download安装测试包
  8. 空间分析方法在计算机上的应用,常见的空间分析方法(很经典的总结)
  9. python爬虫设计图片_手把手教你用Python网络爬虫获取壁纸图片
  10. 美国计算机音乐专业,美国音乐博士解析
  11. 当下垂直搜索引擎集锦一
  12. dhl寄件邮编错了_如果从国外邮寄DHL往中国.邮编怎么写?
  13. Selenium学习 - WebElement接口
  14. 电力,地铁,医生等行业值班员全能倒班日历助手
  15. Python将Excel文件插入Mysql数据库(脚本)
  16. win7计算机用户文件夹,win7系统盘里有一个用户文件夹
  17. 数据库的几个性能指标
  18. vlookup使用步骤_vlookup函数怎么使用_vlookup函数的使用方法及实例 - 系统家园
  19. Markdown 数学公式详解
  20. html的hsl形式的颜色选择器,简单的HSL颜色选择器/拾色器

热门文章

  1. Linux内核同步原语之信号量(Semaphore)
  2. 【踩坑】解决springboot注入yml配置文件 list报错
  3. 数据、变量、内存三者之间的关系
  4. python函数def无效_python自定义函数def的应用详解
  5. java数字货币转化_将数字货币金额转换为大写格式
  6. 量化基金投资之套利策略简介
  7. Windows Server 2012 R2 安装 Docker
  8. linux修改mac地址_如何(以及为什么)在Windows,Linux和Mac上更改您的MAC地址
  9. 电子书PDF文件的压缩实践
  10. 聊聊 GPU 的计算能力上限