`
j2ee_chenwei
  • 浏览: 40688 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP与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)、查找
<Directory />   
</Directory>
修改为:
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>
    如果不改这里的话,可能会出现 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,写上如下代码:
<?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。


转载自:http://blog.csdn.net/li_xingcheng/archive/2009/11/29/4901568.aspx
分享到:
评论

相关推荐

    php无法连接mysql数据库的正确解决方法

    即使连接Mysql的语句正确,php也无法连接mysql数据库,出现如下图所示的结果: 首先是在Apache服务器的conf/httpd.conf下的任意位置都没有:PHPIniDir “php压缩目录”这一项。 如”C:/php-5.4.43-Win32-VC9-x86是...

    JDBC连接mysql处理中文时乱码解决办法详解

    JDBC连接mysql处理中文时乱码解决办法详解 近日,整合的项目需要跟一个比较老版本的mysql服务器连接,使用navicat查看,发现此mysql服务器貌似没有设置默认编码,而且从操作此mysql的部分php文件看,应该是使用的gb...

    PHP实现清除MySQL死连接的方法

    本文实例讲述了PHP实现清除MySQL死连接的方法。分享给大家供大家参考,具体如下: 连接的情况,主要表现为有过多的Sleep连接,并且Time时间很长,占满了所有的可用连接数,以至于其它用户无法再连接数据库。我开始...

    Win2012安装mysql的以及修改root用户可以远程链接

    该文档讲解了再win2012系统上安装mysql5.7.17.0的操作方式,以及配置mysql可以通过远程访问(其他计算机访问)的详细步骤,还提到了几种错误及相应解决办法:1远程连接错误,2php连接mysql错误,3织梦猫生成页面时...

    MySQL数据库监控软件lepus使用问题以及解决办法

    在使用lepus3.7监控MySQL数据库的时候,碰到了以下几个问题,本博客给出了这些问题产生的原因,以及相应的解决办法。 1. 问题1:php页面无法连接数据库 直接使用php程序执行php文件,可以连接mysql,但是在httpd中...

    Win7环境下Apache连接MySQL提示连接已重置的解决办法

    1.能正常访问php和html类型文件,但是访问项目文件时老是连接被重置,后来总结是数据库的问题,就写测试用例测试php能否成功调用数据库。 &lt;?php echo "mysql"; $mysql_conf = array( 'host' =&gt; '127.0.0.1', ...

    PHP执行批量mysql语句的解决方法

    当有多条mysql语句连起来需要执行,比如 $sqls= “insert table a values(1,2); insert table a values(2,3);” 需要执行的话php中可以使用的方法有三个: mysql_query pdo mysqli 三种方法当sqls语句没有问题的时候...

    php写入mysql中文乱码的实例解决方法

    php写入mysql出现中文乱码的解决办法是:在建立数据库连接之后,将该连接的编码方式改为中文。 代码如下: $linkID=@mysql_connect(localhost,root,admin); if(!$linkID) { echo 数据库连接失败!; } echo 数据库...

    Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程

    主要介绍了Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程,包括常见的PHP连接MySQL失败问题的解决办法,需要的朋友可以参考下

    解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)

    【解决办法】:修改php.ini中的 max_execution_time的值,默认为300,单位是秒,例如:;max_execution_time = 300;将其改为:max_execution_time = 3000最后,重新启动服务管理器即可~ 您可能感兴趣的文章:C#访问Sql...

    php和mysql中uft-8中文编码乱码的几种解决办法

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码以及php mysql数据库连接时乱码解决方法

    解决xampp自启动和mysql.sock问题

    装了ubuntu好长一段时间了,都没去用,国庆的时候折腾了下,配置了一些基本的开发环境,一上手就感觉喜欢上了ubuntu,说不上为什么。为了搞本地的测试php测试环境而装了xampp,安装超简单,但是我发现它没有自启动。...

    MF00428-PHP通用权限管理系统源码.zip

     解决办法:db.php 要以uft8无BOM格式编码 保存  notepad++ 编辑器里 格式 下  2.乱码问题  解决办法:数据库建表的时候选 uft8-general-ci 编码格式  然后点开 SQL 把1,SQL复制进去,执行就可以了  3、如果...

    如何修改Xampp服务器上的mysql密码(图解)

    今天自己在搞php的过程中发现,如果我们使用Xampp服务器自带数据库mysql,就必须先修改mysql的密码,大家都知道,mysql的初始面为空,但是如果连接数据库是密码为空就会报错,在网上查找了很多解决类似问题的办法,...

    【源码编号 : MF00428】PHP通用权限管理系统源码

    解决办法:db.php 要以uft8无BOM格式编码 保存 notepad++ 编辑器里 格式 下 2.乱码问题 解决办法:数据库建表的时候选 uft8-general-ci 编码格式 然后点开 SQL 把1,SQL复制进去,执行就可以了 3、如果...

    mysql基础只是总结

    1、初始用户只具有连接权限不具有其他权限,而且连接这个权限无法收回 只能通过删除用户 2、授权grant 收回权限revoke 3、授权语法 grant 权限 on 数据库.表 to 用户@域名或者IP identified by '密码' 4、收回...

    配置阿帕奇1.PHP4.23在WindowsXP下的IIS和Apache2两种服务器上的安装实例 http://www.phpe.net/articles/260.shtml

    5.遇到的问题及解决办法: 4.将php5apache2.dll(在D:\program files\php-5.0.0RC3-Win32下)复制到D:\apache2\Apache2\modules下。 若直接写成LoadModule ...

    PHP 中文乱码解决办法总结分析

    总之一句话,要解决PHP中文乱码最好最快的解决办法就是,页面申明的编码与数据库内部编码一致,如果页面申请的页码与数据库内部编码不一致时,就设定连接编码,mysql_query(”SET NAMES XXX”); XXX为连接编码.一定可以...

Global site tag (gtag.js) - Google Analytics