假設在Windows上已經事先安裝好了PHP,現在想安裝一個PHP擴展,而官方沒有提供它的dll二進制文件,PECL的倉庫里也沒有這個擴展,只能通過源碼安裝。
這里以一個IP地址庫查詢的PHP擴展
monip為例,介紹安裝的步驟:
准備:
1.首先查看你的PHP版本,比如用phpinfo()。然后上官網下載與之版本完全相同的PHP
源代碼。
2.查看你的PHP是用哪個VC編譯器編譯的。下載對應的Visual Studio。(Express版即可)
一般來說,
PHP 5.3、5.4用VC 9(Visual Studio 2008);
PHP 5.5+ 用VC 11(Visual Studio 2012);
3.下載
PHP SDK。有兩個東西要下載,一個是SDK的二進制文件工具包,叫php-sdk-binary-tools;
一個是編譯各個PHP擴展時所依賴的庫文件,叫deps。
不同的版本選擇對應的文件下載。
4.下載PHP擴展monip的
源代碼。
安裝
1.創建文件夾 "C:\php-sdk"
2.把SDK工具包解壓縮后放到 "C:\php-sdk"下,目錄結構為
"C:\php-sdk\php-sdk-binary-tools\bin"
3.打開Visual Studio開發人員命令行提示,輸入命令:
cd c:\php-sdk\ php-sdk-binary-tools\bin\phpsdk_setvars.bat php-sdk-binary-tools\bin\phpsdk_buildtree.bat phpdev
然后腳本將會在php-sdk-binary-tools目錄下創建一個目錄phpdev。
4.以VC11和x86平台為例,將PHP源碼包以及SDK的deps包,分別解壓后放到C:\php-sdk\phpdev\vc11\x86\下。
其他版本同理。放置后目錄結構應該類似
"C:\php-sdk\phpdev\vc11\x86\deps\bin"和
"C:\php-sdk\phpdev\vc11\x86\php_src\buildconf"
5.將monip的源代碼解壓后放到"C:\php-sdk\phpdev\vc11\x86\php_src\ext"目錄下。可以看到該目錄有其他一些自帶的擴展包源碼。
6.編譯。在命令行中輸入命令:
cd C:\php-sdk\phpdev\vc11\x86\php_src buildconf configure --enable-monip=shared nmake
7.編譯后我們需要的二進制文件php_monip.dll位於"C:\php-sdk\phpdev\vc11\x86\php_src\ReleaseXX"下。
將它取出放到原先已經安裝的PHP的放置擴展的目錄中。然后修改php.ini,加載它:
extension=php_monip.dll
8.最后重啟web服務器,再用phpinfo()檢查這個擴展是否已加載。
總結:
Windows下源碼安裝PHP擴展,需要先學會源碼編譯安裝PHP,以及了解關於PHP擴展配置文件的一些知識。