php源码的编译
本片文章主要介绍windows下的php源码的编译。
1.1 编译环境
软件 |
环境 |
操作系统 |
Windows 7 专业版 32bit |
Visual studio |
2012 专业版 |
PHP |
|
PHP-SDK |
1.2 编译步骤
该配置步骤参考PHP官方文档。
1 解压PHP-sdk文件,分别放置于D:/PHP/PHP-sdk/;
2 在PHP-sdk下打开VS2012 x86本机工具命令行提示(该命令行提示符包含了VS的编译、链接等命令的path路径),跳转至PHP-sdk目录下,输入命令:
bin\phpsdk_setvars.bat
配置PHPsdk的包含路径;
3 运行命令
bin\phpsdk_buildtree.bat phpdev
得到生成配置PHP编译路径,得到phpdev目录,该目录下得到VC6、VC8、VC9三个目录,分别对应不同编译器的编译环境,目录内容如下所示:
─vc9
├─x64
│ └─deps
│ ├─bin
│ ├─include
│ └─lib
└─x86
└─deps
├─bin
├─include
└─lib
4 由于没有生成vs2012(VC11)的编译目录,因此可以将phpdev文件夹中的vc9文件夹复制为VC11.
5 将PHP源码解压至D:\php\php-sdk\phpdev\vc11\x86 目录下。
6 运行命令
Buildconf.bat
7 该命令会扫描所有可用包的路径,并得到配置文件configure.js。
8 运行命令
configure.bat
该命令可以配置需要安装的扩展,以及SAPI命令。帮助可使用命令:
configure.bat --help
官方给出的建议是
configure --disable-all --enable-cli
其中 cli (command-line interface)是命令行版本的PHP,可以设置 cgi、apache module等sapi接口生成。
9 运行命令
nmake [clean]
该命令类似与linux版本的make,是VS的生成工具。其Makefile程序是以mak结尾的文件。Clean 参数可以清除生成文件。
若无任何错误,则在源码目录的Release_TS目录下生成了PHP.exe 可执行程序。该程序中包含了配置的所有模块,无需再手动添加dll库。
1.3 可能的问题
- 没有包含CL 、MC程序,需要重新打开VS2012 x86本机工具命令行提示
- 未找到bison、re2c等程序。re2c是PHP5.5采用的词法分析器,bison是gnu项目的一种语法分析器。该类程序在php-sdk/bin目录下包含。需要重新运行命令
bin\phpsdk_setvars.bat
添加。
- 扩展 calendar中存在文件编码问题。将 phpsource/ext/calendar/ 目录下jewish.c 文件修改编码为utf-8即可。(可以采用notepad++修改)
- 编译php5apache2_4模块时,需要下载apache2.4,并需要配置include、lib、bin目录。本文通过添加用户的include、lib、bin(path路径)目录的方法配置。配置方法类似配置path路径。
- 在配置mysqlnld扩展时,可能会出现zlib未包含的情况。可以下载zlib,编译,并在deps的bin、include、lib目录下分别放zlib的dll、zlib.h zcon.h、lib文件。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。