国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

windows下配置php5.5開發(fā)環(huán)境及開發(fā)擴展

2024-04-25 20:16:44
字體:
供稿:網(wǎng)友

這篇文章主要介紹了windows下配置php5.5開發(fā)環(huán)境及開發(fā)擴展,非常的詳細(xì),非常全面,是篇非常不錯的php基礎(chǔ)文章,這里推薦給大家。

網(wǎng)上的教程是比較多的,但是我發(fā)現(xiàn)在windows下的擴展開發(fā)比較少,而且大多都是php5.3版本以前的,今天我就給大家講解一下php擴展開發(fā),我就拿php5.5的版本來說明一下的了

windows環(huán)境(我個人的),代碼如下:

windows 8.1 企業(yè)版(mac os Boot Camp安裝的)

Visual Studio 2012 版本

msysgit  (http://msysgit.github.io/ 下載)

php-sdk-binary-tools-20110915.zip (http://windows.php.net/downloads/php-sdk/下載)

deps-5.5-vc11-x86.7z                  (http://windows.php.net/downloads/php-sdk/下載)

php-5.5.20                        (http://php.net/downloads.php下載,這個版本不定自己選擇)

第一步

解壓php-sdk-binary-tools的二進(jìn)制包,譬如我解壓到我的C:/php-sdk文件夾中,現(xiàn)在的目錄結(jié)構(gòu)如下,代碼如下:

  1. C:/php-sdk 
  2.     --bin 
  3.     --script 
  4.     --share 

然后,這個是你已經(jīng)安裝完成了visual studio 2012,打開VS2012 Native Tools Command Prompt命令行工具,代碼如下:

#進(jìn)入目錄

cd C:/php-sdk

#設(shè)置環(huán)境變量

bin/phpsdk_setvars.bat

#創(chuàng)建常用的php-sdk目錄

bin/phpsdk_buildtree.bat phpdev

如果我們打開bin/phpsdk_buildtree.bat文件就會發(fā)現(xiàn)它只創(chuàng)建到VC9,沒有VC11,但是我們?nèi)绻_發(fā)php5.5版本,我們需要的是VC11,這時候我們就要把C:/php-sdk/phpdev/vc9復(fù)制一份到C:/php-sdk/phpdev/vc11,現(xiàn)在的目錄結(jié)構(gòu)如下:

  1. C:/php-sdk/phpdev/ 
  2.                 --vc6 
  3.                 --vc8 
  4.                 --vc9 
  5.                 --vc11 

因為我下載的deps-5.5-vc11-x86.7z,所以我要解壓deps-5.5-vc11-x86.7z到C:/php-sdk/phpdev/vc11/x86/deps文件夾下覆蓋,里邊都是我們需要的庫文件和一些必要的工具等等。

然后,將我們下載的php-5.5.20.tar.bz2解壓到C:/php-sdk/phpdev/vc11/x86/php-5.5.20文件夾中。

編譯安裝php

回到VS2012 Native Tools Command Prompt

#進(jìn)入php源目錄文件夾

cd c:/php-sdk/phpdev/vc11/x86/php-5.5.20

buildconf

#查看帶的擴展和編譯命令

configure --help

php-sdk

如果你沒有安裝php,現(xiàn)在這里就幫助到你了,可以先編譯安裝一下php

configure --disable-all --enable-cli

然后,你會看到Type 'nmake' to build PHP,然后編譯

nmake

在C:/php-sdk/phpdev/vc11/x86/php-5.5.20/Release_TS文件夾下就生成了php.exe文件,環(huán)境變量中加入這個路徑,好在命令行中能使用php命令。

開發(fā)PHP的第一個擴展

假如我們要開發(fā)一個widuu()函數(shù),實現(xiàn)的效果如下:

  1. function widuu($string){ 
  2.     return "your first extension {$string} is ok"

進(jìn)入擴展目錄,生成擴展文件夾,代碼如下:

cd C:/php-sdk/phpdev/vc11/x86/php-5.5.20/ext

#輸入php ext_skel_win32.php --extname=擴展名稱

php ext_skel_win32.php --extname=widuuweb

這時候我們在C:/php-sdk/phpdev/vc11/x86/php-5.5.20/ext就看到了自己的目錄widuuweb,打開widuuweb/php_widuuweb.h,在

#PHP_MINFO_FUNCTION(widuuweb);下一行寫入自己的函數(shù),譬如我定義的是widuu()函數(shù)

PHP_FUNCTION(widuu);

打開php_widuuweb.c編寫函數(shù),在PHP_FUNCTION(confirm_widuuweb_compiled)下,代碼如下:

  1. PHP_FUNCTION(widuu){ 
  2.     char *arg_string = NULL; 
  3.     int  arg_len,str_len; 
  4.     char *string; 
  5.     if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"s",&arg_string,&arg_len) == FAILURE){ 
  6.         return
  7.     } 
  8.     str_len = spprintf(&string,0,"your first extension %.78s is ok",arg_string); 
  9.     RETURN_STRINGL(string,str_len,0); 

然后找到PHP_FE(confirm_widuuweb_compiled, NULL),在下邊注冊你的函數(shù),代碼如下:

  1. const zend_function_entry widuuweb_functions[] = { 
  2.     PHP_FE(confirm_widuuweb_compiled,   NULL)       /* For testing, remove later. */ 
  3.     PHP_FE(widuu,NULL) 
  4.     PHP_FE_END  /* Must be the last line in widuuweb_functions[] */ 
  5. }; 

修改C:/php-sdk/phpdev/vc11/x86/php-5.5.20/ext/widuuweb/config.w32,去掉

// ARG_ENABLE("widuuweb", "enable widuuweb support", "no");

前邊的注釋,vs命令行,輸入cd .. 到php-5.5.20目錄中,輸入下面的命令

buildconf --force

#查看擴展

configure --help

如果,有錯誤,大家可以打開,目錄下configure.js查看,我這個出現(xiàn)了錯誤,是configure.js的4791行,ARG_ENABLE("widuuweb", "enable widuuweb support", "no");  */

多了一個*/的注釋,去掉就可以了,然后再輸入

configure --help

就看到了,有一行

--enable-widuuweb             enable widuuweb support

然后配置

configure --disable-all --enable-cli --enable-widuuweb=shared

php動態(tài)擴展

其中--enable-widuuweb=shared動態(tài)擴展,正好與靜態(tài)擴展相對。

然后輸入nmake,完成后,我們在C:/php-sdk/phpdev/vc11/x86/php-5.5.20/Release_TS目錄下就發(fā)現(xiàn)了php_widuuweb.dll文件,可以放到環(huán)境中測試了。

如果你本地沒有安裝php環(huán)境,而是跟我一樣只是編譯了php,如果測試,我建議靜態(tài)編譯看效果

configure --disable-all --enable-cli --enable-widuuweb=static

nmake

然后,你可以再Release_TS目錄下,輸入

php -r "echo widuu('widuu');"  //輸出"your first extension widuu is ok"

ok,就說到這里,以后再慢慢來講,有什么不懂的大家可以留言,基礎(chǔ)的ZEND_API,大家可以去walu.cc查看

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌鲁木齐县| 肇庆市| 桦甸市| 祁东县| 长海县| 将乐县| 朝阳县| 黄大仙区| 郯城县| 丽江市| 黄石市| 江孜县| 黄山市| 南木林县| 黔东| 北辰区| 正定县| 哈密市| 商南县| 汝州市| 永德县| 颍上县| 台北县| 乌兰察布市| 台中市| 雷州市| 辽阳市| 北辰区| 临澧县| 阳新县| 龙川县| 静海县| 宣恩县| 成都市| 神农架林区| 南召县| 岳阳县| 五台县| 新建县| 英山县| 汶上县|