惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
PCI Perspectives
PCI Perspectives
Webroot Blog
Webroot Blog
罗磊的独立博客
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Last Week in AI
Last Week in AI
美团技术团队
Help Net Security
Help Net Security
The Hacker News
The Hacker News
C
Cisco Blogs
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
The Register - Security
The Register - Security
IT之家
IT之家
WordPress大学
WordPress大学
Jina AI
Jina AI
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Help Net Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
NISL@THU
NISL@THU
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
Vulnerabilities – Threatpost
B
Blog
T
Tenable Blog
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
S
Security Affairs
小众软件
小众软件
Hacker News: Ask HN
Hacker News: Ask HN
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
A
Arctic Wolf
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
M
MIT News - Artificial intelligence

博客园 - 懒人ABC

Docker 国内镜像源加速列表(转载,真实可用)-https://zhuanlan.zhihu.com/p/1914353637645345944 windows10操作系统下安装facefusion实现视频换脸(windows server不支持哈) 用spark3.5.2+scala2.13.11+JDK17统计文件单词词频 DeepSeek与Elasticsearch结合,可以通过AI模型增强搜索、分析和自动化能力,实现更智能的数据处理(含订单备货和库存预警案例) 配置navicat客户端通过ssl连接windows server 2025的sqlserver2022数据库服务器 在debain下安装思源黑体(Source Han Sans)的注意点 PHP处理建行数币支付的几种情况 获取工作表的名称 获取名称管理器里名称应用的所有单元格 spreadsheet 获取名称管理器 sftp配置多个用户权限的问题 十三、Vue中的computed属性 十二、react-reudx之@connect 摆脱redux的繁琐操作 十一、微信小程序-var、let、const用法详解 十、es6之扩展运算符 三个点(...) 九、小程序 Redux详解与在小程序中怎么使用(action和reducers) 八、wepy代码规范 七、Flex 布局 六、页面跳转和路由
windows10下编译php扩展
懒人ABC · 2022-03-15 · via 博客园 - 懒人ABC

在Windows上开发PHP扩展模块

虽然不怎么用到windows下开发php扩展,但是有的时候有些人就是想安装到windows下运行。没有办法,只能针对性的重新编译。

这里较全面的介绍如果在windows下编译php扩展

一、开发环境搭建

1.      Windows10 64位,

下载wampserver64位,https://www.wampserver.com/en/#wampserver-64-bits-php-5-6-25-php-7

在安装wampserver64位时,尽量把相关的SDK安装全了。尤其是Microsoft Visual C++ 2015-2022 Redistributable(x64)。这个东西到官网下载最快,不要到其他网站,很多垃圾。不安装这些sdk,可能wampserver64起不来哦。

因为我用的是php7.2.34版本,所以还需要下载php7.2.34版本的源代码。https://www.php.net/distributions/php-7.2.34.tar.gz

因为php-7.2.34使用VC15 x64编译的,VC15对应的Visual Studio 2017。所以尽量对应的版本来编译。

还需要下载Cygwin (http://www.cygwin.com)

Cygwin是在调用PHP扩展模块生成工具ext_skel_win32.php时使用,主要模拟一些unix的命令,否则该文件中的一些代码是执行不通的哦。注意:安装时提示选取镜像站点下载模块时,选择.cn结尾的站点速度最快。

安装完成Cygwin之后(安装路径记为[Cygwin Path]),需要将[PHP Source]\ext\ext_skel_win32.php文件中的$cygwin_path设置为[Cygwin]\bin目录路径。
这里有很多坑,但是一些环境必要的插件要勾选。具体参考一下这篇文章https://blog.csdn.net/u010356768/article/details/90756742。如果有额外你需要用的,自己追加啊。

最终会在桌面生成一个Cygwin64 Terminal的快捷方式。

cygwin 安装路径c:\cygwin64,根据你实际安装的来替换。

“PHP源文件目录/ext/ext_skel_win32.php”,在这里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的

cygwin路径。$cygwin_path = 'c:\cygwin64\bin';

把$cygwin_path修改为你实际安装cygwin的路径,这样在下一步生成扩展的时候就不太会出错了。

二、生成扩展

先把php.exe追加到操作系统的环境变量里。例如:

 再打开cmd命令,进入[PHP Source]\ext\目录,执行php ext_skel_win32.php --extname=foo,最终在[PHP Source]\ext\目录下会生成一个foo目录,扩展插件样例代码生成成功。

然后用VS2017在foo目录创建一个工程,并做一些配置:具体参考:https://www.cnblogs.com/taotaodmw/p/14206707.html。该步骤要注意,我们是php7.2.34,需要把php7ts.lib配置到vs2017里。

但是这里需要选择Windows SDK版本为10,如果选择其他版本,有可能编译的时候说找不到xxx.h文件。

正常这样下来,foo.dll是会在[PHP Source]\ext\foo\x64\release下生成了。

最后把这个foo.dll复制一份到

把foo.dll拷到C:\wamp64\bin\php\php7.2.34\ext目录下,修改名称为php_foo.dll,这样在php.ini(注意是appache里的php.ini链接,参考:C:\wamp64\bin\apache\apache2.4.51\bin\php.ini。不改这个重启也无用)里加上一行extension=foo就可以了。因为配置文件是按照这样的格式识别的:extension='php_<ext>.dll

重启一下apache,查看phpinfo();,会发现我们的PHP扩展foo()已经加载进来,已经可以使用这个foo扩展了。