首頁  >  文章  >  後端開發  >  Windows WAMP PHP 擴充開發

Windows WAMP PHP 擴充開發

WBOY
WBOY原創
2016-07-30 13:31:131091瀏覽

1.開發準備
  安裝WAMP,使用的版本為WampServer Version 2.5,其中PHP的版本為5.5.12。
  WAMP安裝目錄:D:wamp
  apache目錄:D:wampbinapache
  php目錄:D:wampbinphp
  下載PHP-5.5.12源碼包,解壓縮到任意目錄。例如:E:php-5.5.12
2.透過phpinfo()查詢php版本的編譯的相關信息,主要查看:
  CompilerMSVC11 (Visual C++ 2012)
  Architecturex8620120320 ,TS,VC11
  PHP Extension BuildAPI20121212,TS,VC11
  從以上的資訊可以看出WampServer 2.5中的php是透過MSVC11(VS2012)在x86(win32) 編譯且設定了屬性。   所以在編譯擴充插件時也需要使用相同的編譯環境及TS設定(預設值為TS)3.產生編譯外掛時需要的config.w32.h檔案
  開啟「VS2012 開發人員指令提示」並進入E :php-5.5.12目錄;
  執行buildconf.bat指令,該指令在目前目錄下產生configure.js檔;
  執行configure指令,產生E:php-5.5.12mainconfig.w32.h檔。
  如果執行過程中出現bison相關的錯誤,表示你沒有安裝bison,可以開啟configure.js檔案並註解如下三行,再重新執行configure指令。
  if (!PATH_PROG('bison')) {


ERROR('bison is required')
  }  為什麼可以這樣做,因為我們不需要編譯PHP,只需要產生config.w32.擴充插件。 4.插件編譯文件準備
  進入E:php-5.5.12ext目錄,複製E:php-5.5.12extskeleton目錄並重命名為你所需要開發插件的名字,如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:wampbinphpphp5.5.12devphp5ts.lib複製到my_plugin目錄。
5.編譯插件及安裝
  使用VS2012開啟my_plugin.dsp文件,選擇Release_TS(產生Release版本)並設定編譯為C程式碼(解決方案屬性-設定屬性-C/C++-高階-編譯為-編譯為C 程式碼(/TC));
  編譯解決方案並產生插件所對應的php_my_plugin.dll檔案(位於E:php-5.5.12Release_TS目錄);
  將編譯產生的dll檔案複製到Wamp PHP PHP目錄(D:wampbinphpphp5. 5.12ext);
  編輯D:wampbinapacheapache2.4.9binphp.ini文件,查找"extension="關鍵字並在PHP原有插件的後面添加"extension=php_my_plugin.dll";
  特別注意:所編輯的php.ini不是D:wampbinphpphp5.5.12php.ini,因為Wamp初始化PHP時,讀取位置在D:wampbinapacheapache2.4.9binphp.ini檔案。
  重啟Apache伺服器。
6.測試外掛程式
  如果外掛程式載入成功,重新啟動Apache伺服器存取phpinfo()即可看到新加入的my_plugin外掛程式。
  產生my_plugin_test.php文件,放置到D:wampwww目錄,檔案內容如下:
      echo confirm_my_plugin_compiled("my_plugin");
_mm ?> ,說明插件運作正常:
  Congratulations! You have successfully modified ext/my_plugin/config.m4. Module my_plugin is now compiled into PHP.


版權聲明:本文為部落客原創文章,未經博主不得轉載。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:php:影像處理下一篇:php:影像處理