Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1601572
  • 博文数量: 43
  • 博客积分: 169
  • 博客等级: 入伍新兵
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-08 15:35
文章分类

全部博文(43)

文章存档

2021年(1)

2019年(4)

2016年(6)

2015年(8)

2013年(19)

2012年(5)

分类: PHP

2016-04-19 20:32:20

为wamp集成开发环境添加PHP扩展的步骤:
1、修改php.ini  添加:extension=**.dll   需要添加的扩展
2、将扩展的dll文件添加到  phpdir/ext目录下
3、重启wamp,查看PHP扩展是否添加成功。
上述三个步骤为理论上的三个步骤,网上的很多解决方案也都是如此。但是当我们进行配置扩展时,会发现完全不是那么回事,到处都是雷。
下面我先说一下我在安装php_ssh2扩展时遇到的问题(真的是一字一泪啊):
首先,按照上面的黄金三步走进行了配置(该改的改了,该添加的添加啦),但是当重新启动wamp时弹出了一个对话框:
1、php5.dll文件丢失
     抱希望于某某度,发现真的是搜索结果很多,但是都是千篇一律啊,最主要是没有能够真正解决问题的结论。最后只能求助某某歌啦,有一篇英文文档里面说,如果php在编译动态连接库时需要操作系统提供对php5的支持(当然取决于你选择的版本),所以需要将php5.dll文件添加到操作系统中(Windows下:c://windows/system32下),非常高兴的解决了这个问题,又重新启动了一下wamp。结构发现竟然报出了这样的错误:
2、PHP Startup:ssh2:Unable to initialize module Module compiled with build Id = API20121212,NTS,VC11 
    PHP compiled with build ID=API20121212,TS,VC11 
    These options need to match 
    当时看到这个问题就晕菜啦,根本没看明白到底是怎么回事,上网上搜,貌似解释的也是云里雾里的。最后通过高人指点才明白怎么回事。
要解决这个问题需要了解几个内容:php扩展 build的方式和执行方式,那么就涉及到如下几个参数(printInfo()打印出来的):
PHP API 20121113
PHP Extension 20121212
Zend Extension 220121212
Zend Extension Build API220121212,TS,VC11
PHP Extension Build API20121212,TS,VC11
Debug Build no
Thread Safety enabled
在谈到PHP扩展应用时不得不提到这样几个参数(着实的踩到了雷啊!):
zend extension build   :表示zend扩展构建时用到的编译环境
PHP extension build :表示PHP扩展加载时用到的编译环境
Thread Safety :表示执行时将进行线程安全检查,这个就是前面所说的 ts  ,而  nts  =  none  thread safe
所有的php扩展都将发布两个版本一个是 NTS (非线程安全)和  TS  (线程安全的)所以在添加扩展时一定要查看一下自身php所对应的执行方式。
所以大家在做php扩展时一定要注意选择正确的发布版本。
阅读(4212) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

hello_ketty2016-04-19 20:33:07

请大家多提宝贵意见