=波波日志 > PHP/apache/Perl > 诊断 Call to undefined function mssql_connect()=

[转]诊断 Call to undefined function mssql_connect()

无意间打开盐城新农村网站到供求信息一看报错“Call to undefined function mssql_connect”,前些天好不容易才使php能够连上另一台服务器上的sqlserver取数据,怎么就突然出问题了呢,况且这要是被领导看到了那还得了。赶快查错。 www.kobsky.cn 小眼世界?á[.+?D |?

1,网站根目录下新增p.php文件,内容<? phpinfo(); ?>查看mssql模块加载情况。 www.kobsky.cn 小眼世界?á[.+?D |?

一看之下发现php没有mssql相关信息 www.kobsky.cn 小眼世界?á[.+?D |?

2,查看系统事件日志,没有发现任何信息,怀疑是php.ini中未开启出错记录 www.kobsky.cn 小眼世界?á[.+?D |?

3,到php.ini中开启error_log = syslog记录加载出错信息,重启IIS www.kobsky.cn 小眼世界?á[.+?D |?

4,这些到事件日志中看到出错信息: www.kobsky.cn 小眼世界?á[.+?D |?

事件 ID ( 2 )的描述(在资源( PHP-5.2.1 )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索词描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: php[2336], PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\php_program\php\ext\php_mssql.dll' - 找不到指定的模块。 www.kobsky.cn 小眼世界?á[.+?D |?
in Unknown on line 0. www.kobsky.cn 小眼世界?á[.+?D |?

确信mssql模块加载失败 www.kobsky.cn 小眼世界?á[.+?D |?

5,检查phpinfo()和配置文件php.ini未发现问题,'D:\php_program\php\ext\php_mssql.dll'文件存在没有问题 www.kobsky.cn 小眼世界?á[.+?D |?

6,检查系统权限未发现问题 www.kobsky.cn 小眼世界?á[.+?D |?

7,现在怀疑php_mssql.dll所依赖的dll文件可能丢失了。 www.kobsky.cn 小眼世界?á[.+?D |?

从php_mssql.dll引入表中可以看到该dll依赖于: www.kobsky.cn 小眼世界?á[.+?D |?

php5ts.dll www.kobsky.cn 小眼世界?á[.+?D |?
ntwdblib.dll www.kobsky.cn 小眼世界?á[.+?D |?
msvcrt.dll www.kobsky.cn 小眼世界?á[.+?D |?
kernel32.dll www.kobsky.cn 小眼世界?á[.+?D |?

8,msvcrt.dll和kernel32.dll为系统文件,搜索了一下确实在系统目录下没有问题 www.kobsky.cn 小眼世界?á[.+?D |?

9,通过unlock工具可以发现php5ts.dll已经在php5isapi.dll被iis加载时也加载到了内存中,所以该dll应该也没有问题 www.kobsky.cn 小眼世界?á[.+?D |?

10,php5ts.dll没有被任何程序加载入内存,看来确实比较可疑 www.kobsky.cn 小眼世界?á[.+?D |?

11,再来看php5ts.dll为什么没能成功加载,它又依赖于哪些dll, www.kobsky.cn 小眼世界?á[.+?D |?

kernel32.dll www.kobsky.cn 小眼世界?á[.+?D |?
advapi32.dll www.kobsky.cn 小眼世界?á[.+?D |?
msvcr71.dll www.kobsky.cn 小眼世界?á[.+?D |?
user32.dll www.kobsky.cn 小眼世界?á[.+?D |?
netapi32.dll www.kobsky.cn 小眼世界?á[.+?D |?

12,搜索了一下kernel32.dll、advapi32.dll、user32.dll、netapi32.dll都存在于系统目录下没有问题 www.kobsky.cn 小眼世界?á[.+?D |?

13,msvcr71.dll在“C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322”目录下并不在“C:\WINDOWS\system32”下,并且系统环境变量中也不包括路径“C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322”,比较可疑 www.kobsky.cn 小眼世界?á[.+?D |?

14,复制一份msvcr71.dll到“C:\WINDOWS\system32”,重启IIS,问题解决。 www.kobsky.cn 小眼世界?á[.+?D |?

故障分析:几天前领导要求盐城新农村网站做IP屏蔽功能,因为网站是基于supesite的,该系统不开源所以没在网站程序里面实现。用.net 2.0写了一个isapi实现的。装到服务器上时,要先装.net 2.0 framework,估计是这个时候弄出问题的。

http://www.kobsky.cn/post/2008/08/10/e8af8ae696ad-Call-to-undefined-function-mssql_connect().aspx

类别:PHP/apache/Perl 作者:转载 日期:2009-09-04 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012WEB编程网桂ICP备05005887号 京公网安备1101055090