首頁 >後端開發 >PHP7 >PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7 windows增加自訂擴充和編譯PHP原始碼

angryTom
angryTom轉載
2019-11-01 11:57:513434瀏覽

PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7 windows增加自訂擴充功能和編譯PHP原始碼

需要用到的材質

推薦教學:php7教學

①決定需要編譯的版本,查看PHPINFO,確定PHP版本,VC版本和PHP位數。根據PHP VC版本下載對應的Visual Studio或編譯器,圖下博主的版本是VC15 需要下載Visual Studio 2017版本

PHP7 windows增加自訂擴充和編譯PHP原始碼

②準備PHP原始程式碼依自己需要擴充的版本下載對應的WINDOWS原始碼下載位址(https://windows.php.net/download/)

③下載PHP-sdk套件(點選下載)(https://github.com/microsoft /php-sdk-binary-tools)

④本地需要有可以使用的PHP,並且配置了環境變數

⑤將下載的PHP-sdk存放後,將/bin目錄配置環境變數

開始操作

①依版本執行處理腳本,部落客是VC15 X64,所以執行php-sdk-vc15-x64.bat,如果沒有下載對應VC版本的Visual Studio和編譯器,處理腳本只會閃一下然後退出。

11PHP7 windows增加自訂擴充和編譯PHP原始碼

成功運行處理腳本

PHP7 windows增加自訂擴充和編譯PHP原始碼

#②執行命令phpsdk_buildtree phpdev,phpdev根據自己的喜愛可以修改(只是一個名稱)。執行完成後phpsdk_buildtree 腳本將根據目前使用的VC 版本建立路徑,並切換到新建立的目錄

PHP7 windows增加自訂擴充和編譯PHP原始碼

裡面會有一個deps資料夾,暫時先不管,把我們準備好的PHP原始碼放入deps同級目錄

PHP7 windows增加自訂擴充和編譯PHP原始碼

#進入解壓縮的php 原始碼目錄,運行phpsdk_deps -u 下載依賴包,網速太慢的朋友可以跳過這一步

③添加自定義PHP擴展

進入源代碼/ext 找到ext_skel_win32.php,注意:PHP7.3版本沒有這個文件,可以直接使用ext_skel

PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7.3版本可以用

PHP7 windows增加自訂擴充和編譯PHP原始碼

#PHP7.2就比較苦逼了,因為這個他是在運行LINUX腳本,windows沒有辦法直接執行,所以需要下載工具來執行,博主有安裝Git,Git集成了LINUX指令集,所以可以透過他運行,沒有安裝的朋友也可以下載Cygwin模擬環境

PHP7 windows增加自訂擴充和編譯PHP原始碼

#執行php ext_skel_win32.php --extname=響亮的名字

PHP7 windows增加自訂擴充和編譯PHP原始碼

執行成功後/ext下就會有這個資料夾

PHP7 windows增加自訂擴充和編譯PHP原始碼

1PHP7 windows增加自訂擴充和編譯PHP原始碼

我們只要修改my_test.c 和config.m4 就可以了,一個程式主體一個設定檔

進入my_test.c找到下圖中的函數

1PHP7 windows增加自訂擴充和編譯PHP原始碼

然後我們就能寫你的邏輯了

1PHP7 windows增加自訂擴充和編譯PHP原始碼

完成後我們開始編譯(注意:編譯是用VC打開的CMD,不是我們執行ext_skel_win32.php的CMD,如果已經退出了可以重新點擊VC15-x64.bat進入,當然PHP7.3可以忽略這點)

PHP7 windows增加自訂擴充和編譯PHP原始碼

進入原始碼的根目錄執行buildconf

1PHP7 windows增加自訂擴充和編譯PHP原始碼

#執行configure --help

1PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7.2版本會有一定的小問題,我們開啟configure.js檔案

1PHP7 windows增加自訂擴充和編譯PHP原始碼

另一種解決方法

開啟擴充原始碼的config.w32,找到// Otherwise, use ARG_ENABLE 這句註解刪除,重新執行buildconf

##執行成功後將會看到我們建立的擴充

1PHP7 windows增加自訂擴充和編譯PHP原始碼

執行configure --disable-all --enable-cli --enablie-my_test=shared,如果不加入shared 將不會有.dll檔案編譯出來

1PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7 windows增加自訂擴充和編譯PHP原始碼

可以看到我們的擴充即將起飛

執行nmake 開始編譯

2PHP7 windows增加自訂擴充和編譯PHP原始碼

編譯成功後來進入(博主是X64,如果編譯32位元的是X86)\x64\Release_TS

2PHP7 windows增加自訂擴充和編譯PHP原始碼

可以看到我們的擴充

2PHP7 windows增加自訂擴充和編譯PHP原始碼

################################################ ######擴展PHP如何使用應該不用再寫下去了,不過如果擴展使用有問題的話,可以執行nmake clean,重新編譯一下在使用,如果還出現了問題那就說明你選擇編譯版本不對應你使用的PHP版本。 ###

以上是PHP7 windows增加自訂擴充和編譯PHP原始碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多