Windows下编译PHP5.4和xdebug全记录

2025-05-29 0 44

实际上我最终目的是编译得到支持 PHP5.4 的 php_xdebug.dll,而在此之前,成功编译 PHP5.4 是必须的。

编译环境以及相关软件包:
1.Microsoft Visual C++ 2008 Express Edition with SP1
2.Windows SDK 6.1
3.PHP SDK Binary Tools
4.Dependable libs
5.PHP5.4 Sources
6.Xdebug 2.2.0-dev
如果你需要的是 VC6 的编译环境,那么你需要安装 Visual C++ 6.0,而 SDK 则需要换成:
Windows Server 2003 PSDK

编译过程:

准备好咖啡、可乐,做好准备,可能要折腾数小时…

安装 VC++ 2008 以及 Windows SDK 6.1

建立如下目录:

复制代码 代码如下:


D:\\php-sdk
D:\\php-sdk\\php54dev
D:\\php-sdk\\pecl


解压 php-sdk-binary-tools-20110915.zip 中的所有文件至 D:\\php-sdk
提取 deps-5.4-vc9-x86.7z 中的 deps 目录至 D:\\php-sdk\\php54dev
解压 php5.4 源码至 D:\\php-sdk\\php54dev,目录名任取,比如 php-5.4.0RC3
xdebug 的源码放到 D:\\php-sdk\\pecl\\xdebug

最终的目录结构大概是这样子的:

复制代码 代码如下:


D:\\php-sdk>tree D:\\php-sdk
Folder PATH listing for volume DISK_VOL2
Volume serial number is 0C74-AD73
D:\\PHP-SDK
├───bin
├───php54dev
│ ├───deps
│ │ ├───bin
│ │ ├───include
│ │ ├───lib
│ │ └───sybase
│ ├───pecl
│ │ └───xdebug
│ └───php-5.4.0RC3
├───script
└───share

打开 Windows SDK CMD Shell,执行:setenv /x86 /xp /release,如果你是64位系统,那么这个命令是必须的,不要试图把参数改成 /x64,否则后续的 make 阶段,你会看到成千上万条 WARNING …

设定 PATH:set PATH=D:\\php-sdk\\bin;%PATH%

切换 SHELL 目录至 D:\\php-sdk\\php54dev\\php-5.4.0RC3>,执行 buildconf 生成 configure 脚本:

复制代码 代码如下:


D:\\php-sdk\\php54dev\\php-5.4.0RC3>buildconf
Rebuilding configure.js
Now run 'configure –help'
D:\\php-sdk\\php54dev\\php-5.4.0RC3>


执行 configure 生成 Make 脚本,可以查看 configure –help 以获取更多编译选项:

复制代码 代码如下:


D:\\php-sdk\\php54dev\\php-5.4.0RC3>configure –disable-snapshot-build –disable-debug-pack –disable-ipv6 –disable-zts –disable-isapi –disable-nsapi –without-t1lib –without-mssql –without-pdo-mssql –without-pi3web –without-enchant –enable-com-dotnet –with-mcrypt=static –disable-static-analyze –with-xdebug=shared


这里我使用了 –disable-snapshot-build 关掉了 snapshot 模式,因为这个命令会强制开启许多对我来说无用的选项,比如 aolserver,apache sapi 之类的,最后我加上了 –with-xdebug=shared,在使用这个选项之前最好确认 xdebug 源码的位置正确,如果没什么问题的话,buildconf 之后,在 configure –help 中你可以看到这个选项,shared 表示编译成动态链接库。

如果你要编译其它的 pecl 扩展(比如 apc,bcompiler 等),只需要相关的源码下载放到 pecl 目录,重新执行 buildconf 即可。

若 configure 无问题,最后执行 nmake 开始编译过程,Good Luck! 🙂

最后一步 nmake snap,组织所有编译好的文件的目录结构(也就是你平时下载的 PHP 二进制包的结构),并用 zip 打包。

最终生成的文件位置:D:\\php-sdk\\php54dev\\php-5.4.0RC3\\Release(_TS)

错误处理:
nmake 过程中会产生很多的 Warning,只要不中断,那么就无视好了。

关于 calendar.c 和 jewish.c 的编码问题:

复制代码 代码如下:


ext\\calendar\\calendar.c : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
dow.c
easter.c
french.c
gregor.c
jewish.c
ext\\calendar\\jewish.c : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
ext\\calendar\\jewish.c(324) : error C2001: newline in constant
ext\\calendar\\jewish.c(325) : error C2001: newline in constant
ext\\calendar\\jewish.c(326) : error C2001: newline in constant
ext\\calendar\\jewish.c(327) : error C2001: newline in constant
NMAKE : fatal error U1077: '"C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\Bin\\cl.exe"' : return code '0x2'
Stop.


这两个文件使用的是 ANSI 编码,包含有一些西文的特殊字符,GBK 字符集中不存在。
可用 editplus 打开,编码选择:West European (Windows),另存为 UTF-8。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Windows下编译PHP5.4和xdebug全记录 https://www.kuaiidc.com/102188.html

相关文章

发表评论
暂无评论