热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP连MSSQL时遇到的问题

PHP连MSSQL的问题(NTWDBLIB.DLL在作怪)而同事就可以连,他比较了ntwdblib.dll这个文件,版本都是2000.2.8.0。唯一不同的是他的机子装了MSSQL,怀疑是这个原因。搜索了下,发现确实是这个原因。也有不少人碰到装了MSSQL就可以连远程MSSQL,没装则不行。试

PHP连MSSQL的问题(NTWDBLIB.DLL在作怪)

而同事就可以连,他比较了ntwdblib.dll这个文件,版本都是2000.2.8.0。唯一不同的是他的机子装了MSSQL,怀疑是这个原因。

搜索了下,发现确实是这个原因。也有不少人碰到装了MSSQL就可以连远程MSSQL,没装则不行。

试验了下,发现原因还是在于NTWDBLIB.DLL这个文件。我本机是php5自带的,版本为2000.2.8.0,他也是。

在MSSQL光盘中搜索这个文件,找到NTWDBLIB.DLL,版本是2000.80.194.0。

将这个文件,Copy到php安装目录和c:/windows/system32目录下,停掉IIS或Apache。


一个Case需要使用PHP5连接MS SQL Server 2005,找了些资料自己琢磨了下,搞定了,呵呵


步骤:

1. 首先按通常做法配置好PHP5连接MS SQL Server
2. 下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: http://webzila.com/dll/1/ntwdblib.zip
3. 覆盖 apache2.2.6/bin/ntwdblib.dll
4. 覆盖 php5.2.5/ntwdblib.dll
5. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols
6. 允许命名管道 "named pipes" 和 "tcp/ip"
7. 右键点击 "tcp/ip",打开属性 Properties 标签 "IP addresses"
8. 在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433
9. 重启 SQL Server、Apache和PHP

使用以下方式连接MS SQL Server 2005:
mssql_connect('localhost,1433', USERNAME, PASSWORD);


另请注意:
如果更改了默认的1433端口号,则IP地址后面加端口号,用,号隔开,不是:号,如
$linkId = mssql_connect('IP地址,端口号','用户名','密码');
其实直接把php5自带的那个ntwdblib.dll考到system32(可以尝试一下)


   Apache的安装与配置
 

    打开apache官方网站 http://archive.apache.org/dist/httpd/binaries/win32/ 或者镜像网站 http://apache.mirror.phpchina.com/httpd/binaries/win32/,下载里面的apache_2.2.8-win32-x86-no_ssl.msi安装文件,目前最新版本是apache_2.2.9-win32-x86-no_ssl-r2.msi。其中,同一版本有两种类型:no_ssl和openssl,openssl多了个ssl安全认证模式,它的协议是HTTPS而不是HTTP,这就是带有SSL的服务器与一般网页服务器的区别了。一般情况下,我们下载no_ssl版本的就ok了。
 

    下载好apache安装文件后,点击安装,在连续3次next后,将进入server information配置界面,要求输入network domain、server domain和网站管理员的邮箱地址,普通用户可以随便按照格式填一下就行了。再次按Next后,出现选择安装路径的界面,默认的路径比较长,飘易建议把安装路径修改为:“C:/apache/”,继续安装,直到完成。
 

    安装完毕,apache就自动启动,可以测试apache是否成功启动。在浏览器地址栏里输入:http://localhost/或http://127.0.0.1,如果出现“It works.”,那么恭喜你,apache已经成功安装了;同时在电脑右下角的任务栏里有一个绿色的apache服务器运行图标。
 

    apache还有一个配置文件:httpd:conf 需要配置,以便php运行。位置为:C:/apache/conf 目录里。打开httpd:conf:
1)、查找“DocumentRoot”,这里是指定主页放置的目录。默认是:“C:/Apache/htdocs”,你可以使用默认的目录,也可以自己定义一个,如:“D:/PHP”。注意:目录末尾不要加“/”。
    2)、查找“DirectoryIndex”,这里是默认首页文件名,可以在index.html 的后面加入index.php等。每种类型之间都要留一个空格。
    3)、查找
   

修改为:

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all

    如果不改这里的话,可能会出现 You don't have permission to access / on this server. 这样的错误提示,尤其在改变了默认主页的路径后。
 

    注意:每次修改httpd:conf文件后,都要重启apache服务器。另外,如果你的win32系统上同时也运行iis服务器,那么就要先停止iis服务器的运行,然后再启动apache,否则apache服务器无法启动。
 

    Php的安装与配置方法
 

    首先从php的官方网站http://www.php.net/downloads.php 下载windows版本的,有两种版本:PHP 5.2.6 zip package和PHP 5.2.6 installer,目前最新版本就是5.2.6,飘易使用的是5.2.5版本。PHP 5.2.6 installer为自动安装方式,虽然比较自动化,但在很多方面受到限制,因此飘易不推荐使用这种方式,下面介绍PHP 5.2.6 zip package压缩包方式下的手动安装。
 

    1)、将PHP的压缩包zip解压到一个目录下,推荐:“C:/PHP”。
    2)、将PHP目录(C:/PHP)下的 php.ini-dist 文件重命名为 php.ini,PHP的配置文件就是它,修改以下几个地方,修改好后把 php.ini 文件复制到 C:/WINDOWS/ 目录里:
extension_dir="C:/php/ext" ,指向php文件夹下放置“php_*.dll”文件的路径。PHP4和PHP5的路径在这里有所区别。
doc_root="D:/PHP" ,指向前面apache设置的首页位置;
default_charset="gb2312" ,修改默认字符集,这里,如果前面有分号“;”,去掉这个分号;
register_globals=Off 改为 register_globals=On ,使传递全局变量有效;
extension=php_dba.dll 如果前面有分号,取消分号,以下同;
extension=php_dbase.dll
extension=php_gd2.dll  GD库做图,一般用于图形验证码;
extension=php_mysql.dll  用于连接MYSQL数据库;
    3)、将PHP目录下的 php5ts.dll 文件拷贝到 C:/WINDOWS/system32 目录。

    4)、最后修改 Apache 的 httpd.conf 文件。在该文件的末尾添加如下2行,表示以模块方式安装PHP进入Apache:
LoadModule php5_module c:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
 

    注意:第一行的目录路径要更新为当前版本的apache动态链接库,比如这里我使用的是apache2.2.8版本和php5.2.5,那这个文件必须是php5apache2_2.dll,而不能是php5apache.dll、php5apache2.dll等。第二行为php脚步的后缀。
    php4版中,需要添加一行 AddType mod_php4.c,而在php5中,就不需要这样的一行 AddType mod_php5.c了,php5已经集成,否则 apache 启动不了。
 

    以上就完成了apache和php的配置过程了,重启apache。在服务器的默认目录“C:/Apache/htdocs”里新建文件index.php,写上如下代码:
phpinfo();
?>
    在浏览器地址栏里输入 http://127.0.0.1 或 http://localhost ,你就会看到php版本信息了。到此为止,php和apache就已经成功的安装了。
 

    这里有个细节:apache的配置文件 httpd.conf 中的目录分割符号是“/”,而 PHP 的配置文件 php.ini 里的目录则要求是反斜线 “ /”,不要搞混了哦。
 

    MYSQL的安装就简单了。到官方网站 http://dev.mysql.com/downloads/mysql/5.0.html,下载windows平台下的 mysql ,选择 Windows ZIP/Setup.EXE (x86) 最新版本是 5.0.67 ,下载即可。直接安装,安装完成后,可以进入配置向导,设置mysql数据库密码。一切OK。


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
gavinwu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有