windows php 扩展编译,PHP:扩展编译Windows/Linux

PHP的编译方式分为:静态编译,动态编译

在window下

只能通过加载dll动态链接库的方式进行功能扩展,dll文件必须与当前的版本吻合,如:具体版本号,ts或nts,vc6或vc9

#首先安装cygwin

#下载php的源码,需要和安装环境中的php版本一致

#修改源码目录下的ext_skel_win32.php,如果是cygwin默认安装,可以不用修改

$cygwin_path = ‘c:\cygwin\bin’;

#在命令行执行

${php_install}\php.exe ${php_souce}/ext/ext_skel_win32.php –extname=extend_name

#生成扩展框架,用于生成dsp文件用于编译,如果已有扩展代码,直接放置在该目录下

一些可能发生的错误

#../main/config.w32.h': No such file or directory

#需要本机编译php源码

#下载http://www.php.net/extra/bindlib_win32.zip

#下载http://www.php.net/extra/win32build.zip

#全部解压在${php_source}/win32/build,并将该目录设置为环境变量

#在命令行运行${php_source}/buildconf.bat

#在命令行运行${php_source}/configure.bat

#会在${php_source}/main下生成config.win32.h这个文件

用visual studio2010会报错,找不到cl.exe

使用vistual studio2010提供的命令行工具,再次执行命令即可

或C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat

如果想要No Thread Safe 模式就在上面的命令最后加上参数 --disable-zts

config.w32.h 里面 #define PHP_COMPILER_ID 改成和你正在用的 PHP 编译版本相同的编译器ID,例如VC6或者VC9

在linux下

2种编译方法都可以,并且phpize就是为了动态编译而存在的

#先进入源码目录

Cd ${php_souce}/ext

#生成扩展框架,如果已经有扩展代码,直接放置在该目录下

./ext_skel –extname=extend_name

#编写扩展代码

#进入扩展代码目录

${Php_install}/bin/Phpize

./configure –with-php-config=${php_install}/php-config

Make

Make test

#在当前目录的modules目录中已经生成extend_name.so文件

#复制该文件进入php的扩展目录

Mv modules/extend_name.so ${php_install}/lib/extensions/

#编辑php配置文件,加载该扩展

Extension=”extend_name.so”

#直接安装

Make install

#重启php进程,让该模块生效

你可能感兴趣的:(windows,php,扩展编译)