快捷搜索:

您的位置:澳门新葡4473网站 > 热门贴子 > windows7+apache2.4+sql server+php7.0

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

发布时间:2019-10-12 09:35编辑:热门贴子浏览(186)

    参考文献:

    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

     文献:

     

    本文由澳门新葡4473网站发布于热门贴子,转载请注明出处:windows7+apache2.4+sql server+php7.0

    关键词: