windows7+apache2.4+sql server+php7.0

2019-10-21 01:02 来源:未知

参考文献:

PHP天生支持MySQL,但是有时候也想让它访问SQL Server,该怎么办呢?

                 

最近找了点资料,测试成功了PHP访问SQLSvr的几种情况,限于时间,还没有测试更多不同环境,把测试过的记录如下:

                 

 

                 


 1、下载Apache2.4(因为php7.0以上版本需要Apache2.4以上的支持),下载地址为

测试环境:win7 x64 sp1,IIS 7.5, Apache 2.4 32位版本,PHP 5.2.6 win32, PHP 5.6.11 win32 ts(线程安全版)

我下载的版本为:下图中最新2.4.33 x64:

注:由于“Microsoft Drivers for PHP for SQL Server”驱动程序目前只有32位版,所以如果是使用sql server数据库的朋友,不建议使用php 64位,否则会导致无法连接 sql server 数据库的问题!

图片 1


3、下载php7.0(Microsoft Drivers for PHP for SQL Server驱动文件最新4.0支持到php7.0),下载地址:

php 5.2.6在iis上成功访问了sql2000

图片 2

php 5.2.6在iis上成功访问了sql2008r2

 3、配置Apache和php

php 5.6.11在apache上成功访问了sql2008r2

1)解压安装


       将下载后的Apache解压缩。如解压到D:phpApache24。

【5.2.6 -> SQL2000】

       将下载的php-7.0.29-Win32-VC14-x64解压。如解压到D:phpphp-7.0.29-Win32-VC14-x64。

为什么要用5.2.6这么旧的php版本做测试呢,因为php 5.2版本,内置了php_mssql.dll 模块,

 2)配置Apache24conf下httpd.conf 文件,用记事本打开即可:

打开了php.ini中的extension=php_mssql.dll 配置选项,默认好像就支持mssql2000了,

      (1)第38行SRVROOT值改为 "D:/php/Apache24"//Apache程序的位置。   

打开phpinfo能看到相关的支持模块内容:

               这里定义了变量,以后用到的SRVROOT都是这个路径 

图片 3

      (2)第213行ServerName前面的“#”号去掉;     

 

      (3)第246行DocumentRoot "c:/Apache24/htdocs"改为DocumentRoot "D:/www";//网站的根目录

PS.IIS 7.0下安装PHP现在方便了,可以通过一个第三方小工具 PHP Manager来安装,也可以方便的切换iis下的php版本,这不是本文的主要内容,这里就不介绍了;

               第247行<Directory"c:/Apache24/htdocs">改为<Directory "D:/www ">;

php manager for iis 7 下载安装地址: 

               注意:这个WWW文件夹要自己去新建的,不建的话会报错的。

图片 4

      (4)第281行DirectoryIndex index.html改为DirectoryIndexindex.html index.php index.htm   //支持更多的默认页

图片 5

      (5)文件添加下面几行,增加对php7的支持:

写一个测试的小例程:

               PHPIniDir "D:/php/php-7.0.29-Win32-VC14-x64"

 1 <?php
 2 $server ="127.0.0.1sql2000";  //服务器IP地址,如果是本地,可以写成localhost
 3 $uid ="sa";  //用户名
 4 $pwd ="yoooko"; //密码
 5 $database ="master";  //数据库名称
 6  
 7 //进行数据库连接
 8 $conn =mssql_connect($server,$uid,$pwd) or die ("connect failed");
 9 mssql_select_db($database,$conn);
10  
11 //执行查询语句
12 $query ="select * from cs";
13 $row =mssql_query($query);
14  
15 //打印输出查询结果
16 while($list=mssql_fetch_array($row))
17 {
18        print_r($list);
19        echo "<br>";
20 }
21 ?>

               LoadModule php7_module "D:/php/php-7.0.29-Win32-VC14-x64/php7apache2_4.dll"

在IIS 7.5下运行结果如下:成功!

               AddType application/x-httpd-php .php .html .htm

图片 6

      (6)测试。把index.html(内容随便写的什么)放到D:www目录下,用浏览器,地址栏输入localhost,访问会出现index.html文件内的内容,Apache配置成功。

 

 

 

3)配置php

【5.6.11 -> SQL2008R2】

    (1)打开D:phpphp-7.0.29-Win32-VC14-x64php.ini-production;复制并重命名为php.ini

5.6以上的PHP已经没有php_mssql.dll,貌似也不再原生支持sql2000以上版本的sql server了,要通过第三方模块,在微软官网找到了:

    (2)将 D:phpphp-7.0.29-Win32-VC14-x64和D:phpphp-7.0.29-Win32-VC14-x64ext加入环境变量PATH中,

Microsoft Drivers for PHP for SQL Server

 

下载链接地址有四个文件:

  • SQLSRV30.EXE
  • SQLSRV31.EXE
  • SQLSRV32.EXE
  • SQLSRV40.EXE

分别支持不同的PHp版本

  • Version 4.0 supports PHP 7.0+
  • Version 3.2 supports PHP 5.6, 5.5, and 5.4
  • Version 3.1 supports PHP 5.5 and 5.4
  • Version 3.0 supports PHP 5.4.

如果是PHP 5.2要下载一个SQLSRV20.EXE,这个文件目前在网上也能很容易的找到;

(虽然5.2这么旧的版本早就该被淘汰了,但是考虑到某些环境还需要用它)

php_pdo_sqlsrv_52_ts_vc6.dll

php_sqlsrv_52_ts_vc6.dll

图片 7

 

  1. 我手里是PHP 5.6.11 win32 ts,要用到这个 

php_sqlsrv_56_ts.dll
php_pdo_sqlsrv_56_ts.dll

这两个文件,复制到phpext目录下,

  1. php.ini 里加上以下两句:

extension=C:PHP5extphp_sqlsrv_56_ts.dll
extension=C:PHP5extphp_pdo_sqlsrv_56_ts.dll

  1. 重启IIS或者Apache,

4. 通过phpinfo能够看到如下模块显示,我们的PHP应该此时就能访问SQL Server 2008R2了;

 

 图片 8

图片 9

 

5、写一个小程序验证一下:

 1 <?php
 2 try {   
 3         $dbName = "sqlsrv:Server=127.0.0.1sql2008r2;Database=master";   
 4         $dbUser = "sa";   
 5         $dbPassword = "yoooko";   
 6         $db = new PDO($dbName, $dbUser, $dbPassword);       
 7         if ($db)   
 8         {       
 9             echo "database connect succeed.<br />";   
10         }
11     }
12     
13     catch (PDOException $e)
14     {   
15        $content = iconv("UTF-8","gbk",$e->getMessage());    
16        echo   $content . "<br />";
17     }
18        
19         //echo "Hello PDO to MS SqlSrv!";
20     
21 ?>

如果出现如下提示:

图片 10

可能你还需要安装 Microsoft® ODBC Driver 11 for SQL Server® - Windows

下载地址:

如果正确的话,应该就OK了:

图片 11

 PS.由于新的模块是通过PDO方式访问SQL Server 2008R2,如果是本机访问,那么直接通过ip地址和sa账号就能访问了,

      如果php和sql2008r2在不同电脑上,还得设置TCP 端口1433来访问,见下面第二张图,把动态端口改为0,把端口设置为14333如果你的SQL2000已经占用了1433,访问地址后面加个,xxxx端口号

sqlsrv:Server=192.168.1.xxxsql2008r2,14333;Database=master

 

 

 

 

 

             选中计算机,右键属性-->高级系 统设置 -->环境变量-->系统变量,找到Path,编辑,在其后加上; D:phpphp-7.0.29-Win32-VC14-x64;D:phpphp-7.0.29-Win32-VC14-x64ext,下图,

图片 12

      (3)打开几个常用php扩展:

               用记事本或其他编辑器打开D:phpphp-7.0.29-Win32-VC14-x64php.ini

               ;extension_dir = "ext"修改为 extension_dir = "ext" (去掉extension前面的分号)

               893行 ;extension=php_curl.dll 去掉前面的分号

               896行 ;extension=php_gd2.dll 去掉前面的分号

               903行 ;extension=php_mbstring.dll 去掉前面的分号

               905行 ;extension=php_mysqli.dll 去掉前面的分号

               909行 ; extension=php_pdo_mysql.dll 去掉前面的分号

       1040行

     [SQL]

     ;

     sql.safe_mode = On

    462行    display_errors = On  用来显示错误信息

       (4)测试:(大前提,Apache是开启状态)

               编写D:wwwtest.html, 添加内容为<?php phpinfo()?>,保存。

               在浏览器中打开 127.0.0.1/test.html,是不是看到了phpinfo的相关内容,恭喜你,你的php已经跟apache协同工作了!

              图片 13

 

4、php与sql server 连接测试

       1)下载驱动Microsoft Drivers for PHP for SQL Server,下载地址:    

                下载链接地址有四个文件:

                •SQLSRV30.EXE

                •SQLSRV31.EXE

                •SQLSRV32.EXE

                •SQLSRV40.EXE

                分别支持不同的PHp版本

                •Version 4.0 supports PHP 7.0+

                •Version 3.2 supports PHP 5.6, 5.5, and 5.4

                •Version 3.1 supports PHP 5.5 and 5.4

                •Version 3.0 supports PHP 5.4.

               因为我安装的是PHP7.0版本,所以下载的是SQLSRV40.EXE

               安装SQLSRV40.EXE,选择解压路径为:D:phpphp-7.0.29-Win32-VC14-x64 ext。如下图所示:

              图片 14

   2)php.ini修改

            734行 extension_dir = "D:phpphp-7.0.29-Win32-VC14-x64ext"

            在php.ini 里加上以下三句:

           extension=php_odbc.dll

           extension=php_sqlsrv_7_ts_x64.dll

          extension=php_pdo_sqlsrv_7_ts_x64.dll

   3)保存php.ini,重启apache,浏览器打开127.0.0.1/test.html

   图片 15

图片 16

5、安装sqlserver2008r2,安装教程:

6、测试数据库连接

       建立连接测试文件test.php   

      <?php

           header("Content-type: text/html; charset=utf-8");

           $serverName = "localhost";

           //数据库名字叫test

           $connectionInfo =array("Database"=>"test","UID"=>"sa","PWD"=>"root");

           $conn = sqlsrv_connect($serverName, $connectionInfo );

           if( $conn === false ) {

               die( print_r( sqlsrv_errors(), true));

                }else{
               echo "连接数据库正确";
           }

      ?>

刚开始页面出现报错,rray ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: [message] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86:  ) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 [message] => [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 ) )

是因为没有安装ODBC的驱动程序,就直接复制报错提示的链接下载驱动程序,并安装

图片 17

出现这个说明成功

 

7.安装mysql

文献:

     

8.安装phpmyadmin

 文献:

 

TAG标签:
版权声明:本文由金沙澳门唯一官网发布于金沙澳门唯一官网,转载请注明出处:windows7+apache2.4+sql server+php7.0