Windows下编译php_scws.php

scws目前只提供php 5.4及以下的php扩展。求助无果,无奈只得自己想办法编译。

看了scws的文档,问了问作者,然后开始动手。


首先,需要有个php的开发环境。这一点可以看这里:https://wiki.php.net/internals/windows/stepbystepbuild


第一步,你要有一个Visual Studio。 

对应php版本。 

php 5.4是vs 2008. 

php 5.5 or php 5.6 需要 vs 2012

php 7 + 需要 vs 2015


第二步,找到你的vs的命令行工具 ,打开,备用。


第三步,下载php source。 这里下: http://windows.php.net/download/

当然,要下你想下的版本。


第四,下载binary tools。 http://windows.php.net/downloads/php-sdk/

要下日期最新的。


第五,在第四步的时候顺道把php depends也下了。

当然是对应你php版本的。


第六步,配置目录。

把binary tools解压。比如解压到d:\php-sdk\

用第二步打开的命令,进入这个目录。  cd d:\php-sdk

执行命令 bin\phpsdk_buildtree.bat phpdev

d:\php-sdk下多出个目录phpdev

里面有vc6 vc8 vc9三个目录。

把d:\php-sdk\phpdev\vc9 复制成 d:\php-sdk\phpdev\vc11

然后在vc11里创建 x86  x64 两个目录。

这里我们只用x86平台的。所以把php source解压到x86目录里。

例如: d:\php-sdk\phpdev\vc11\x86\php-5.6.21-src

然后把php depends文件也解压,覆盖x86下在的deps目录。


下面就可以编译了。


第七步,编译。

cd d:\php-sdk

执行 bin\phpsdk_setvars.bat

然后再进入 d:\php-sdk\phpdev\vc11\x86\php-5.6.21-src

执行 buildconf

执行 configure --help 可以看下命令行帮助。

创建自己的配置: configure --disable-all --enable-cli 

如果需要把某个扩展编译进php就在后面跟上相应的选项,这些选项都会出现在--help里。

最后执行 nmake来编译。

没报错,那就是成功了。


编译完会多出个目录Release_TS,里面就是编译的好的php。   包括exe和dll,具体有些啥要看 configure的时候你指定了啥。


第八步,将scws解压到 d:\php-sdk\phpdev\vc11\x86\。

没错,跟php-5.6.21-src同一目录。


第九步,打开vs.根据你的php版本来。 

php 5.6.x是vs 2012,php 7是vs 2015。


第十步,打开scws\win32\下面的vs工程文件。

提示需要转换,那就转换。

编译选项选 release ,x86。

工程里有两个项目 libscws 和scws

然后打开scws的属性页,新建一个编译配置,可以从现有的复制一个过去。起名叫Release_PHP7。

把相关的附加目录,附加库的路径都改成 php-5.6.21-src。


第十一步,修改xdict.c文件

把#include 移到#ifndef WIN32的后面去。


然后,编译吧。


能不能成功看造化。


前面之所以要先编译下php源代码,是因为不编译,有些文件不会出来,比如 config_win32.h,比如php5ts.lib,等等。


如果提示缺少zlib,可以去下个windows的zlib库,附加到工程里。


php_scws.dll虽然可以生成,但是实际能不能用还没试。


























-end-

你可能感兴趣的:(PHP)