摘要:編譯成功后,在源碼的目錄下會生成或目錄,編譯好的及生成的拓展均在此目錄下。的文件名為,例如。和默認編譯出來的拓展是線程安全的版本位于目錄中,如果要編譯非線程安全版本,時加入選項。
轉載請注明文章出處:https://tlanyan.me/windows-co...準備工作
https://github.com/Microsoft/...下載PHP-SDK(在右邊的“clone or download”點擊,選擇下方的“download zip”);
https://windows.php.net/downl...下載PHP7.2的源碼,此時最新版本是7.2.8,選擇“php-7.2.8-src.zip”下載;
https://visualstudio.microsof...選擇“visual studio community 2017”,安裝過程中選擇C++功能。
編譯新建編譯目錄,例如“D:PHP2Compile”;
將"php-sdk-binary-tools-master.zip"中的文件解壓到編譯目錄下;
按住shift在編譯目錄內點擊右鍵,選擇“open powershell window here”;
執行"phpsdk-vc15-x64.bat",成功后提示符從“>”變成"$";
執行"phpsdk_buildtree phpdev",成功后目錄中會多一個“phpdev”目錄,命令行的目錄自動切換到"phpdev/vc15/x64";
在"phpdev/vc15/x64"目錄下新建php-src文件夾,將PHP源碼復制到此目錄;
切換到php-src目錄(cd php-src),執行"phpsdk_deps -u";
在“phpdev/vc15/x64”下建立pecl目錄(與PHP源碼目錄同級),將拓展復制到該目錄下;
在PHP源碼目錄內執行"buildconf";
執行“configure --一些選項”命令配置編譯選項,例如"configure --disable-all --enable-cli --enable-cgi --enable-zlib --enable-hash --enable-session --without-gd --with-bz2 --enable-yourext";
執行nmake命令編譯PHP及拓展。
編譯成功后,在源碼的X64目錄下會生成“Release”或"Release_TS"目錄,編譯好的php.exe及生成的拓展dll均在此目錄下。dll的文件名為php_xxxx.dll,例如"php_tlanyan.dll"。
TS和NTS默認編譯出來的拓展是TS(線程安全)的版本(位于Release_TS目錄中),如果要編譯非線程安全版本,configure時加入"--disable-zts"選項。
編譯成功后,線程安全版本信息為(php.exe -v輸出):
PHP 7.2.8 (cli) (built: Aug 14 2018 10:53:41) ( ZTS MSVC15 (Visual C++ 2017) x64 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
非線程安全版本輸出:
PHP 7.2.8 (cli) (built: Aug 14 2018 11:47:40) ( NTS MSVC15 (Visual C++ 2017) x64 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies注意事項
原PHP-SDK下載地址https://windows.php.net/downl...只能下載PHP7.1及以前的SDK工具,PHP7.2的工具需從github上下載;
如果已經之前安裝過visual studio,執行"phpsdk-vc15-x64.bat"出現"could not determine "vc15" directory"的錯誤提示,表示未安裝VC工具,啟動安裝工具添加VC支持即可;
編譯前可將不需要的拓展刪除,加快編譯速度;
如果自定義的拓展出現“cannot open include file "win95nt.h"”,可使用這個頭文件:https://github.com/nonylene/i...。
參考https://wiki.php.net/internal...
http://blog.51cto.com/lancelo...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29249.html
摘要:安裝好,開始按照流程編譯拓展,新的問題出現了。參考的方案將其值改成。繼續編譯,變量初始化錯誤導致類似問題。所以很有可能是因為變量未設置正確導致的。 轉載請注明文章出處:https://tlanyan.me/solve-buil... 接上篇Windows編譯PHP7.2拓展,以為編譯PHP7.1的拓展應該水到渠成,馬到成功。哪知道編譯PHP7.1拓展出現了新問題,折騰更超7.2。 第...
摘要:下源碼安裝一前言之前,我的開發環境是。重新加載權限表將確保所有到目前為止所做的更改將立即生效。然后,和注意,如果是使用二進制包安裝了及相應的開發庫,不需要指定路徑。五參考資料入門教程編譯安裝編譯安裝 Debian9下源碼安裝LNMP 一、前言 之前,我的開發環境是Windows-10+PHP-7.1+Nginx-1.10+MariaDB-10.1。 后面開發需要使用到memcached...
閱讀 2779·2023-04-26 01:47
閱讀 3591·2023-04-25 23:45
閱讀 2461·2021-10-13 09:39
閱讀 606·2021-10-09 09:44
閱讀 1789·2021-09-22 15:59
閱讀 2761·2021-09-13 10:33
閱讀 1706·2021-09-03 10:30
閱讀 656·2019-08-30 15:53