Windows WAMP PHP 擴充開發

來源:互聯網
上載者:User
1.開發準備
安裝WAMP,使用的版本為WampServer Version 2.5,其中PHP的版本為5.5.12。
WAMP安裝目錄:D:\wamp
apache目錄:D:\wamp\bin\apache
php目錄:D:\wamp\bin\php
下載PHP-5.5.12源碼包,解壓到任意目錄。例如:E:\php-5.5.12
2.通過phpinfo()查詢php版本的編譯的相關資訊,主要查看:
CompilerMSVC11 (Visual C++ 2012)
Architecturex86
Zend Extension BuildAPI220121212,TS,VC11
PHP Extension BuildAPI20121212,TS,VC11
從以上的資訊可以看出WampServer 2.5中的php是通過MSVC11(VS2012)在x86(win32)進行編譯且設定了TS(Thread Safe)屬性。
所以在編譯擴充外掛程式時也需要使用相同的編譯環境及TS設定(預設值為TS)
3.產生編譯外掛程式時需要的config.w32.h檔案
開啟“VS2012 開發人員命令提示”並進入E:\php-5.5.12目錄;
執行buildconf.bat命令,該命令在目前的目錄下產生configure.js檔案;
執行configure命令,產生E:\php-5.5.12\main\config.w32.h檔案。
如果執行過程中出現bison相關的錯誤,說明你沒有安裝bison,可以開啟configure.js檔案並注釋如下三行,再重新執行configure命令。
if (!PATH_PROG('bison')) {
ERROR('bison is required')
}
為什麼可以這麼操作,因為我們不需要編譯PHP,只需要產生config.w32.h檔案,以編譯擴充外掛程式。
4.外掛程式編譯檔案準備
進入E:\php-5.5.12\ext目錄,複製E:\php-5.5.12\ext\skeleton目錄並重新命名為你所需要開發外掛程式的名字,如my_plugin;
將php_skeleton.h,skeleton.c和skeleton.dsp重新命名為php_my_plugin.h,my_plugin.c和my_plugin.dsp;
分別開啟上面的三個檔案,將檔案中的extname替換為my_plugin,EXTNAME替換為MY_PLUGIN(保證大小寫一致);
將D:\wamp\bin\php\php5.5.12\dev\php5ts.lib複製到my_plugin目錄。
5.編譯外掛程式及安裝
使用VS2012開啟my_plugin.dsp檔案,選擇Release_TS(產生Release版本)並配置編譯為C代碼(解決方案屬性-配置屬性-C/C++-進階-編譯為-編譯為 C 代碼 (/TC));
編譯解決方案並產生外掛程式所對應的php_my_plugin.dll檔案(位於E:\php-5.5.12\Release_TS目錄);
將編譯產生的dll檔案複製到Wamp PHP擴充目錄(D:\wamp\bin\php\php5.5.12\ext);
編輯D:\wamp\bin\apache\apache2.4.9\bin\php.ini檔案,尋找"extension="關鍵字並在PHP原有外掛程式的後面添加"extension=php_my_plugin.dll";
特別注意:所編輯的php.ini不是D:\wamp\bin\php\php5.5.12\php.ini,因為Wamp初始化PHP時,讀取位置在D:\wamp\bin\apache\apache2.4.9\bin\php.ini檔案。
重啟Apache伺服器。
6.測試外掛程式
如果外掛程式載入成功,重啟Apache伺服器訪問phpinfo()即可看到新添加的my_plugin外掛程式。
產生my_plugin_test.php檔案,放置到D:\wamp\www目錄,檔案內容如下:
echo confirm_my_plugin_compiled("my_plugin");
?>
使用瀏覽器訪問上面建立的my_plugin_test.php檔案,出現如下頁面,說明外掛程式運行正常:
Congratulations! You have successfully modified ext/my_plugin/config.m4. Module my_plugin is now compiled into PHP.

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

以上就介紹了Windows WAMP PHP 擴充開發,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.