博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP5.4 + VS2010 WIN8 x64写扩展环境搭建
阅读量:4980 次
发布时间:2019-06-12

本文共 2045 字,大约阅读时间需要 6 分钟。

网上资料找了不少,这里留个随笔汇总一下,自己以后再搭建就不用再找资料了。

WIN8 64位没有问题,应该WIN7的也可以,不做测试了。

一、需求:

1. PHP5.4环境(Apache\nginx\IIS随便,只要能运行PHP.EXE就行)

2. VS2010(要有C++,看了好多写ASPX的程序员可能没装这个,注意下)

二、准备工作:

1. 进入下载页面:

下载deps-5.4-vc9-x86.7z

注:有更新版本就下最新的吧

2. 进入下载页面:

下载PHP源码,我下的是php-5.4.9-src.zip

注:同上,按需下载

3. 进入下载页面:

下载MinGW,要用到里面的SH,有Cygwin的就不用下载了,没有的话,下载安装也没多久,不知道下哪的话,进页面找到这个点击下载:mingw-get-inst-????????.exe(问号是日期),MinGW安装的时候因为需要,我选了编译器,不知道不选可不可以正常使用,注意下。装一下大概300多M,我20M的光纤,感觉安装时下载用了近10分钟左右,低速的朋友注意下。

三、建工程文件夹

G:\Workspace\phpdev,这是我的当前路径,改成你的工作路径吧。

把deps-5.4-vc9-x86.7z解到G:\Workspace\phpdev里,里面多出三个文件夹:bin、script、share

打开“系统>高级系统设置>环境变量>系统变量>path”,后面加上你的工作路径下的bin文件夹(要用到Bison.exe)、PHP文件夹、还有system32文件夹(要用到CScript.exe),如:

G:\Workspace\phpdev\bin;D:\DEV\ServApp\PHP;c:\windows\system32;

打开CMD命令行(管理员身份),定位至G:\Workspace\phpdev

然后找到你的VS2010文件夹,找到里面的vc\vcvarsall.bat,不可能没有,仔细找找,真不行直接右上角搜索vcvarsall.bat,把全路径复制下来,路径带空格的前后加俩双引号,如:

"D:\Program Files\ForWork\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"

到刚刚打开的CMD中右键粘贴运行上面的BAT。

然后继续,输入:

bin\phpsdk_setvars.bat

bin\phpsdk_buildtree.bat phpsrc

如果报错,上面肯定没设置好。完成后,phpdev里多出一个phpsrc文件夹,把php-5.4.9-src.zip解压到phpsrc\vc9\x86\里面

然后作个调整:

phpsrc\vc9\x86\ext\ext_skel_win32.php,用编辑器打开,把里面的

$cygwin_path = '改成你自己的CYGWIN或是MinGW路径';

我的是这个:

$cygwin_path = 'C:\MinGW\msys\1.0\bin';

保存退出

然后命令行里面输入:

configure

如果有出现cscript、bison不存在,检查你的环境变量system32有没有加上或是杀软给屏了,cl.exe不存在的话,vcvarsall.bat没运行,执行完没问题的话,继续输入

configure --disable-all --enable-cli

这一步产生了一堆信息不用管,因为main\config.w32.h等文件已经生成了,然后打开main\config.w32.h

搜索PHP_COMPILER_ID,把值VC10换成VC9,保存。

把命令行工作路径换到phpsrc\ext,继续执行

php ext_skel_win32.php --extname=testext

黄色部分改成你的EXTENSION名字,打开phpsrc\ext\php_testext,里面DSP看到了吧,打开、转换成VS2010工程,

项目属性里面有以下改动:

项目>属性>

  C/C++>高级>编译为:编译为 C 代码 (/TC)

  链接器>附加库目录,这里面加上你的PHP里面的DEV文件夹,我的是这个D:\DEV\ServApp\PHP\dev

配置管理器里面,设置Release_TS为活动

编译无问题生成的dll在phpsrc\Release_TS里面,这个dll可以复制到你的php环境的ext文件中,同时编辑你的php.ini,加上extension=php_testext.dll

看PHPINFO的时候,应该有testext的一栏了,时间匆忙没写太细了,如果是写PHP扩展的话,这个搭建是绝对没问题了。

 

转载于:https://www.cnblogs.com/LastPropose/archive/2012/12/06/vs2010_php_extension.html

你可能感兴趣的文章
WPF 带水印的密码输入框
查看>>
ASP.NET Core 2.2 基础知识(十一) ASP.NET Core 模块
查看>>
ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界
查看>>
sql-----STR 函数
查看>>
WPF中类似使用tab键功能,可以向上向下定位
查看>>
设置WPF输入框焦点
查看>>
SQLServer数据库差异备份
查看>>
SQL SERVER GO命令循环使用实例
查看>>
C# 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配...
查看>>
你可能不知道的字符比较中的“秘密”
查看>>
SQL server 2005 PIVOT运算符的使用
查看>>
ASP.NET MVC基于标注特性的Model验证:将ValidationAttribute应用到参数上
查看>>
用Excel做出比肩任务管理软件的操作技巧
查看>>
Jquery--仿制360右下角弹出窗口
查看>>
jQuery的选择器中的通配符[id^='code'] 【转】
查看>>
vmware osx10.12分辨率问题
查看>>
python 基础(十二) 图片简单处理
查看>>
Java知识总结-7
查看>>
Android Activity的创建、生命周期
查看>>
poj2676Sudoku
查看>>