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文件。
php源码的编译的更多相关文章
- net-snmp源码VS2013编译添加加密支持(OpenSSL)
net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...
- net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)
net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...
- Hadoop2.x源码-编译剖析
1.概述 最近,有小伙伴涉及到源码编译.然而,在编译期间也是遇到各种坑,在求助于搜索引擎,技术博客,也是难以解决自身所遇到的问题.笔者在被询问多次的情况下,今天打算为大家来写一篇文章来剖析下编译的细节 ...
- 使用 IntelliJ IDEA 导入 Spark 最新源码及编译 Spark 源代码
前言 其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. 准备工作 1.sca ...
- 【转】Android用NDK和整套源码下编译JNI的不同
原文网址:http://www.devdiv.com/android_ndk_jni_-blog-99-2101.html 前些天要写个jni程序,因为才几行代码,想着用ndk开发可能容易些,就先研究 ...
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- 从源码(编译)安装golang 二
h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; te ...
- MySQL源码包编译安装
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库实力部署时间:2019年3月9日内容:MySQL源码包进行编译,然后部署MySQL单实例重点 ...
- 通过清华大学镜像下载Android源码并编译源码
之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...
- Android : 修改内核源码 and 编译、打包成新的boot.img
一.Android内核源码的下载: 1.Google GIT地址: $ git clone https://android.googlesource.com/kernel/common.git $ g ...
随机推荐
- GitOps入门与实践:如何集成Git和K8S?
也许你之前听说过GitOps,但是对其并不了解.在本文中,我将对其进行简单介绍,它其实是一个应用程序开发和管理中的一个术语,其核心思想是将应用系统的声明性基础架构和应用程序存放在Git的版本控制库中. ...
- 将url转化成file文件
let img = "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=508387608,28489740 ...
- Html5 部分帮助文档 未完待续
W3cSchoolH5帮助文档 Video属性 视频播放效果 Video标签 src视频得目录 controls属性提供添加 播放 和音量控件 当然呢 不设置宽和高得话 视频会很大 Video还可以 ...
- mybatis进阶案例之多表查询
mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...
- 事务特性,事务的隔离级别以及spring中定义的事务传播行为
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
- 计算属性(computed)+侦听器(watch)+ 方法(methods)
计算属性 computed 当数据改变时,方法的结果也会发生改变.如果多处地方调用计算属性里面的同一个方法时,该方法只会执行一次.如图,在控制台改变data里面的num值时,虽然在多处使用comput ...
- 基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现
目录 1. 概述 2. 实现 2.1. 原理 2.2. 核心代码 2.3. 第二种优化 3. 结果 1. 概述 我在之前的文章<基于均值坐标(Mean-Value Coordinates)的图像 ...
- java-根据用户输入的成绩来判断等级(新手)
//创建的一个包名. package qige; //导入的一个包.import java.util.Scanner; //定义一个类.public class Zy2 { //公共静态的主方法. p ...
- SpringBoot的启动流程是怎样的?SpringBoot源码(七)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 温故而知新 本篇接 SpringBoot内置的各种Starter是怎样构建的? SpringBoot源码(六) 温故而知新, ...
- VsCode编辑器那些事
1.怎么改成中文的? 按快捷键“Ctrl+Shift+P” 在框下点击“configur Display language" 会跳转至商店,选择插件下载“Chinese (Simplifie ...