scws目前只提供php 5.4及以下的php擴展。求助無果,無奈只得自己想辦法編譯。
看了scws的文檔,問了問作者,然后開始動手。
第一步,你要有一個Visual Studio。
對應php版本。
php 5.4是vs 2008.
php 5.5 or php 5.6 需要 vs 2012
php 7 + 需要 vs 2015
第二步,找到你的vs的命令行工具 ,打開,備用。
當然,要下你想下的版本。
要下日期最新的。
第五,在第四步的時候順道把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-