DSP

Windows下的PHP扩展

2019-07-13 17:51发布

本来想吐槽点什么,算了,直接进入主题吧。  安装PHP并扩展。(我使用的PHP版本是php-5.3.10) 1) 下载php-5.3.10源码包(php-5.3.10.tar.bz2)并解压到C:php-5.3.10;下载二进制包php-5.3.10-Win32-VC9-x86.zip,也解压到C:php-5.3.10,重复的文件全部覆盖。 2) 下载php-sdk-binary-tools-20110915.zip,并解压到C盘下,并将解压后的bin目录添加到系统变量。 3) 命令行就如C:php-5.3.10,输入buildconf.bat。 4) 输入cscript /nologo configure.js --with-php-build="../win32build" --without-libxml  --disable-odbc。回车后报错:   没有找到cl.exe。我机器上安装了VS2010,所以可以C:Program FilesMicrosoft Visual Studio 10.0VCin目录下找到cl.exe,因此将C:Program FilesMicrosoft Visual Studio 10.0VCin加入系统环境变量。继续执行语句,依然报错:         提示缺少dll文件,mspdb100.dll文件可在C:Program FilesMicrosoft Visual Studio 10.0Common7IDE目录下找到,复制到VCin目录下即可。继续执行语句,成功。在C:php-5.3.10main目录下生成config.win32.h文件。     因为我的PHP二进制版本是VC9编译的,所以编译扩展模块也应该通过VC9,修改config.win32.h:     修改为: 5) 进入ext目录,复制skeleton文件夹并重命名为要扩展的名字,如myextension。 6) 进入myextension目录,将php_skeleton.h/skeleton.c/skeleton.dsp分别重命名为php_myextension.h/myextension.c/myextension.dsp。并将这3个文件中的所有'extname'替换为'myextension','EXTNAME'替换为‘MYEXTENSION’,注意匹配大小写。 7) 编辑php_myextension.h文件(红 {MOD}方框部分为所添加的内容)。      8) 编辑myextension.c文件(红 {MOD}方框部分为所添加的内容)。           9) 将C:php-5.3.10devphp5ts.lib拷贝到myextension目录下,用VS2010打开myextension.dsp工程,进行工程转换并生成dll文件。生成的扩展dll文件为:C:php-5.3.10Release_TSphp_myextension.dll。      这里可能会出现问题:fatal error C1902: 程序数据库管理器不匹配;请检查安装解决。      解决办法:将C:Program FilesMicrosoft Visual Studio 10.0Common7IDE目录下的msobj100.dll/mspdbcore.dll/mspdbsrc.exe拷贝到C:Program FilesMicrosoft Visual Studio 10.0VCin目录下。      10) 将php_myextension.dll拷贝到C:php-5.3.10ext目录下。 11) 配置php.ini。进入C:php-5.3.10目录。复制php.ini-production并重命名为php.ini。在php.ini中添加两行:         extension_dir = "ext"         extension=php_myextension.dll         extension_dir = "ext"         extension=php_myextension.dll 12) 命令行进入C:php-5.3.10,输入命令:php -r "echo myaddfunc(1,2);"     如果命令行打印出3则php扩展成功。       好了,弄这玩意弄到吐血~ 尊重一下别人的劳动成果:以下是一些参考网址: http://koda.iteye.com/blog/315779 http://blog.csdn.net/k1988/article/details/6164843 http://www.tuicool.com/articles/3AJRZn http://www.cppblog.com/suitang/articles/136262.html