使用vs2008搭建php扩展环境
所需要的工具或者文件:
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文件

echo confirm_myhello_compiled("test");
使用vs2008搭建php扩展环境的更多相关文章
- php开发扩展环境的搭建(Windows)
php开发扩展环境的搭建(Windows) 前期准备: (1) 下载php-5.3.10源码包(php-5.3.10.tar.bz2)并解压到C:\php-5.3.10:下载二进制包php-5.3.1 ...
- Windows下搭建PHP开发环境
PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...
- 在macOS Sierra 10.12搭建PHP开发环境
macOS Sierra 11.12 已经帮我们预装了 Ruby.PHP(5.6).Perl.Python 等常用的脚本语言,以及 Apache HTTP 服务器.由于 nginx 既能作为 HTTP ...
- 9款一键快速搭建PHP运行环境的好工具
9款一键快速搭建PHP运行环境的好工具 胡倡萌 2011/02/19 网络资源 77,063 1 内容提要: 建立一个PHP网站,首先需要搭建PHP的开发和运行环境,对于PHP初学者也是一个难 ...
- 抛弃强大的TFS ,借助于BugTracker.NET + Visual Source Safe + SourceLink搭建项目开发环境
微软公司的Team Foundation Server是个强大的项目管理工具,如果用.NET开发,它应该是首选的项目管理平台.TFS的成本比较高,而且和Visual Studio集成紧密.比如TSF有 ...
- Windows搭建python开发环境,python入门到精通[一]
从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...
- Mac下搭建php开发环境教程
方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...
- 使用Visual Studio Code搭建TypeScript开发环境
使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...
- 如何搭建redis扩展-Yii中文网
原文链接: 如何搭建redis扩展http://www.yii-china.com/post/detail/43.html 安装redis扩展: 1.通过composer进行安装,到项目根目录cmd运 ...
随机推荐
- add添加
s = {1,2,3,4,5,6,} 进行添加数据! s = {1,2,3,4,5,6,} s.add('s')#添加字符串's' s.add('3')#添加字符串'3' s.add(3)#添加3和字 ...
- 剑指offer 面试题65 滑动窗口的最大值
import java.awt.print.Printable; import java.beans.VetoableChangeListenerProxy; import java.lang.ref ...
- jQuery给动态添加的元素绑定事件的方法
我们在开发过程会遇到无法给动态元素添加绑定事件,解决方案如下: 例如 <div id="testdiv"> <ul></ul> </d ...
- facebook 用curl获取用户资料
用facebook获取用户信息 $graph_url= "https://graph.facebook.com/me?scope=email&fields=id,name,email ...
- angular作用域分析
angualr作用域 Scope 控制器作用域的继承特性Ⅰ 绑定的数据是变量 单向隔离(兄弟之间互不影响,父子之间单向继承) 父级控制器的数据绑定会影响到子级控制器 前提是子控制器内没有绑定数据 单向 ...
- BZOJ4570: [Scoi2016]妖怪
题目传送门 4570: [Scoi2016]妖怪 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 491 Solved: 125 [Submit][Sta ...
- BZOJ1483: [HNOI2009]梦幻布丁
传送门 名字起得很高端实际上很简单的算法hhh 启发式合并 简单讲就是一些合并一堆队列的题可以用启发式合并,或者说这是一个思想.每次把小的合并到大的部分,均摊复杂度$O(MlogN)$. //BZOJ ...
- elk系列6之tcp模块的使用
preface tcp模块的使用场景如下: 有一台服务器A只需要收集一个日志,那么我们就可以不需要在这服务器上安装logstash,我们通过在其他logstash上启用tcp模块,监听某个端口,然后我 ...
- 静态关键字static(2)
static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 具体而言,在Java语言中,static ...
- python学习笔记-(十六)python操作mysql
一. mysql安装 1. windows下安装mysql 1.1. 下载源: http://dev.mysql.com/downloads/installer/,请认准对应版本 Windows (x ...