所需要的工具或者文件:

1、php源码,去官网下载即可。http://windows.php.net/download

2、php-sdk:php 开发工具包

3、deps类库

4、Cygwin:windows下模拟liux的编译器

网络资源参考

1、http://blog.csdn.net/a600423444/article/details/8108993

2、http://koda.iteye.com/blog/315779

环境搭建

将php-sdk解压,解压后应该有bin和script这两个子目录。

1、设置编译环境变量

运行vs2008的vcvarsall.bat文件,该文件位于:VS2008安装路径\VC\vcvarsall.bat

2、设置开发环境变量

进入php-sdk所在目录,例如cd c:\php-sdk

运行bin目录下的两个文件:phpsdk_setvars.bat、phpsdk_buildtree.bat

格式:

bin\phpsdk_setvars.bat

bin\phpsdk_buildtree.bat php54dev

其中的php54dev为扩展项目名,可以任意修改。运行后php-sdk目录下会多个一个php54dev目录。

3、安装开发类库

将deps加压到:php-sdk\php54dev\vc9\x86\目录下,原先该目录下有一个deps目录,将其覆盖即可。

4、引入php源码

将下载的php源码也解压到php-sdk\php54dev\vc9\x86\目录下

5、编译php源程序

cmd进入php源码目录,运行buildconf

6、创建扩展程序

安装cygwin,进入php源码包\ext目录下,修改ext_skel_win32.php : 
  $cygwin_path = 'c:\cygwin\bin';

修改为你的cygwin目录 
  $cygwin_path = 'd:\cygwin\bin';

命令行方式进入ext目录然后运行: 
php ext_skel_win32.php --extname=myhello 
(当然,为了保证上面的命令行能正常运行,首先你得确保你的php目录在系统的环境变量里)

7、构建dll文件

1.用VS打开myhello文件夹中的.dsp文件
2.设置项目属性-》配置属性-》C/C++-》代码生成,设置运行库:多线程 DLL (/MD)
3.设置项目属性-》配置:切换到Release_TS
 
4.设置项目属性-》配置属性-》C/C++-》高级,设置编译为:编译为 C 代码 (/TC)
5.设置项目属性-》配置属性-》链接器》常规,设置输出文件:Release_TS/php_myhello.dll。
如果不设置,当编译生成扩展后,找起来会比较麻烦。所以这项设置不是必须的。
6.设置项目属性-》配置属性-》链接器》常规,增加附加库目录:F:\php_work\php-5.4.5\dev
现在扩展已经编译成功,接下来是在PHP中使用它。
8.拷贝php_my_fopen.dll至F:\php_work\php-5.4.5\ext下
8.打开F:\php_work\php-5.4.5\php.ini,添加extension=ext/php_myhello.dll
9.新建F:\php_work\test.php
<?php
echo confirm_myhello_compiled("test");
?>
 

使用vs2008搭建php扩展环境的更多相关文章

  1. php开发扩展环境的搭建(Windows)

    php开发扩展环境的搭建(Windows) 前期准备: (1) 下载php-5.3.10源码包(php-5.3.10.tar.bz2)并解压到C:\php-5.3.10:下载二进制包php-5.3.1 ...

  2. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  3. 在macOS Sierra 10.12搭建PHP开发环境

    macOS Sierra 11.12 已经帮我们预装了 Ruby.PHP(5.6).Perl.Python 等常用的脚本语言,以及 Apache HTTP 服务器.由于 nginx 既能作为 HTTP ...

  4. 9款一键快速搭建PHP运行环境的好工具

    9款一键快速搭建PHP运行环境的好工具 胡倡萌 2011/02/19 网络资源 77,063 1     内容提要: 建立一个PHP网站,首先需要搭建PHP的开发和运行环境,对于PHP初学者也是一个难 ...

  5. 抛弃强大的TFS ,借助于BugTracker.NET + Visual Source Safe + SourceLink搭建项目开发环境

    微软公司的Team Foundation Server是个强大的项目管理工具,如果用.NET开发,它应该是首选的项目管理平台.TFS的成本比较高,而且和Visual Studio集成紧密.比如TSF有 ...

  6. Windows搭建python开发环境,python入门到精通[一]

    从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...

  7. Mac下搭建php开发环境教程

    方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...

  8. 使用Visual Studio Code搭建TypeScript开发环境

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  9. 如何搭建redis扩展-Yii中文网

    原文链接: 如何搭建redis扩展http://www.yii-china.com/post/detail/43.html 安装redis扩展: 1.通过composer进行安装,到项目根目录cmd运 ...

随机推荐

  1. 软件工程(FZU2015)赛季得分榜,第一回合

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...

  2. 1122从业务优化MYSQL

    http://blog.itpub.net/22664653/viewspace-2079576/ 开发反馈一个表的数据大小已经130G,对物理存储空间有影响,且不容易做数据库ddl变更.咨询了开发相 ...

  3. .Net Core Linux centos7行—安装nginx,运行静态网站

    使用编译安装方式安装nginx Nginx下载地址:http://nginx.org/en/download.html.下载Stable version(稳定版就好).当前稳定版:http://ngi ...

  4. Redis集群(三):主从配置一

    一.本文目的          Redis的主从配置分为两篇文章,第一篇主要介绍了Redis主从配置的搭建过程及使用,第二篇主要说明各种情况下Redis主从状态,如Master挂掉,Slaver挂掉, ...

  5. the pipeline of call SNP

    ######################################## ############### Mapping ################ ################## ...

  6. Leetcode 39. Combination Sum

    Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique c ...

  7. C#重构之道

    定义 重构的定义:在不改变软件可观察行为的前提下,改善其内部结构. 其中,不改变软件行为,是重构最基本的要求.要想真正发挥威力,就必须做到“不需了解软件行为”. 如果一段代码能让你容易了解其行为,说明 ...

  8. 如丝般顺滑地从Windows迁移SQLServer数据库到Linux

    老鸟看过菜鸟的上一篇<MSSQL On Linux备份与还原>文章后,很满意,但是还是忍不住发问:"这篇文章讲的是MSSQL在Linux系统上的备份与还原,如果我之前是Windo ...

  9. SmohanTimeLine.js 酷炫的时间轴效果

    展示地址 点此下载 原文出处 一.参数说明 item : '.item', //项目元素 top : 30, //与下一行的间距 pointWidth : 22, //时间点宽度 cornerWidt ...

  10. [NHibernate]存储过程的使用(二)

    目录 写在前面 文档与系列文章 创建对象 更新对象 总结 写在前面 上篇文章介绍了如何使用MyGeneration代码生成器生成存储过程,以及nhibernate中通过存储过程删除数据的内容,这篇文章 ...