Windows下使用VS2010编译PHP5.4和YAF

须要研究Laruence维护的YAF,并且得在Windows下学习使用。php5.4的改进和新特性吸引我在未来来临的项目中使用它,如今php5.4.1已经RC了,修正了大量bug,正式版很快就会发布了。估计在项目正式使用时,更稳定可靠的php5.4.2也已经出来了。下面的编译过程,是针对php5.4分支的。下面的过程,参考官方提供的编译步骤php

编译PHP

首先下载php-sdk,先下载较新的php-sdk-binary-tools-20110915.zip,解压到mysql

f:\php-sdkgit

目录下。注意,解压后,这个目录下应该有bin和script子目录。github

开一个cmd窗口,切换到f:\php-sdk目录下,运行vcvarsall.bat来设置好编译环境变量。sql

d:\develop\MVS10\vc\vcvarsall.batwindows

这里vcvarsall.bat的具体目录要根据你本身的安装位置而定。服务器

接着,进入在cmd窗口里继续运行如下命令:session

bin\phpsdk_setvars.batcurl

bin\phpsdk_buildtree.bat php54devsvn

这样,在f:\php-sdk目录下又多了一个php54dev目录。

接着继续在php-sdk目录下载deps-5.4-vc9-x86.7z,并解压到

f:\php-sdk\php54dev\vc9\x86\

目录下。原来这个目录下的deps目录下的全部子目录均是空目录,解压后,应该复制进不少必要的模块/扩展所需的库文件。

接着获取php5.4分支下的最新代码,

cd f:\

git clone https://github.com/php/php-src.git

cd php-src

git checkout PHP-5.4

将PHP-5.4目录复制一份到

f:\php-sdk\php54dev\vc9\x86\

目录下。进入php源码目录

cd f:\php-sdk\php54dev\vc9\x86\php-5.4

运行

buildconf

而后能够查看一下可配置的选项:

configure --help

而后就能够先试着编译php了。最开始,通常编译尽量少的模块,先让核心能正常编译出来:

configure --disable-all --enable-cli

而后编译

nmake clean; nmake

稍等,php5.4最核心部分及一个命令行工具就编译出来了。nmake clean是为了不遗留编译中间结果文件带来干扰。看看都有什么扩展模块:

cd Release_TS

php -m

能够看到:

[PHP Modules]

Core

date

ereg

pcre

Reflection

SPL

standard

[Zend Modules]

接下来,能够慢慢地加上所须要的扩展模块。注意,编译时最好把编译结果输出到某个文件中,好比:

nmake >log.txt

这样,若是编译过程当中出了问题,能够查看完整的编译记录。

咱们多加点扩展模块看看:

configure --disable-all --enable-cli --with-tidy --with-sqlite3 --with-mcrypt=static --with-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-mhash --with-curl --with-gettext --with-iconv --enable-mbstring --enable-session

nmake

cd Release_TS

php -m

[PHP Modules]

Core

date

ereg

gd

gettext

hash

iconv

mbstring

mcrypt

mhash

mysql

mysqli

mysqlnd

pcre

Reflection

session

SPL

sqlite3

standard

tidy

[Zend Modules]

接下来,能够根据本身的须要增长或删除扩展模块了。具体有哪些模块参数可用,能够经过

configure --help

来获取。

若是须要把某个模块编译成动态加载,能够相似这样指定:

--with-sqlite3=shared

静态模块能够相似这样指定:

--with-mcrypt=static

编译YAF

如今,咱们能够开始进行YAF的编译了。从YAF下载,或者直接从svn服务器上同步最新的源码:

svn checkout https://svn.php.net/repository/pecl/yaf/trunk/

把YAF的源码放到

f:\php-sdk\php54dev\vc9\x86\pecl\yaf

其实也能够放到

f:\php-sdk\php54dev\vc9\x86\php-5.4\ext\yaf

目录下。固然,上面是官方推荐用法,毕竟yaf在pecl里。

回到php源码目录下

cd f:\php-sdk\php54dev\vc9\x86\php-5.4

运行

buildconf

而后能够查看一下可配置的选项:

configure --help

能够发现,多了一个参数选项:

--enable-yaf enable yaf support

再次配置并编译:

configure --disable-all --enable-cli --with-tidy --with-sqlite3 --with-mcrypt=static --with-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-mhash --with-curl --with-gettext --with-iconv --enable-mbstring --enable-session --enable-yaf

nmake

注意,YAF可能对一些扩展模块和功能有依赖,若是编译出错,检查出错信息,通常加上所缺的依赖便可。

使用 php -m 查看一下吧,就会发现YAF已经顺利编译完成。不过缺省状况下是以静态方式编译的,若是想以动态方式,即获得php_yaf.dll,能够把上面配置参数中的

--enable-yaf

改成

--enable-yaf=shared

便可。而后再nmake clean;nmake就好了。

若是想打个包,能够运行

nmake snap

Release_TS目录下就会多几个zip包,分别是咱们将须要的开发包、测试用例包和发布包。

更新

更新源码后,须要从新编译,这就只须要开一个cmd窗口,进入php源码目录后,运行

d:\develop\MVS10\vc\vcvarsall.bat

f:\php-sdk\bin\phpsdk_setvars.bat

而后再用nmake编译便可。若是参数须要调整或有新模块加入,仍是要从新buildconf和configure。

相关文章
相关标签/搜索