¿Cómo puedo instalar pdo_sqlsrv en mi Windows 2008 Server 2008 R2? [cerrado]

Estoy tratando de usar PDO para conectarme a una base de datos de SQL Server. He estado luchando con esto por un poco ahora. Recibo este error fatal en mi página donde intento conectarme a SQL Server.

Error grave: excepción no detectada 'PDOException' con mensaje 'SQLSTATE [IMSSP]: esta extensión requiere que el controlador ODBC del cliente nativo de Microsoft SQL Server 2012 se comunique con SQL Server. Acceda a la siguiente URL para descargar el controlador ODBC de Microsoft SQL Server 2012 Native Client para x86:http://go.microsoft.com/fwlink/?LinkId=163712'

He descargado los discos dehttp://www.microsoft.com/en-us/download/details.aspx?id=20098 (SQLSRV30.EXE) He colocado esos controladores en el directorio ext donde está instalado php en el servidor Server 2008 R2.

También he agregado estas 2 líneas al final de la lista de extensiones en el archivo php.ini

extension=php_pdo_sqlsrv_53_nts.dll
extension=php_sqlsrv_53_nts.dll

Estoy usando PH PVersion 5.3.19 Servidor API CGI / FastCGI Thread Safety desactivado

Yo veopdo_sqlsrv pero no veo una versión de API de cliente.

¿Qué más debo hacer para poder usar PDO para conectar con el servidor remoto que tiene bases de datos SQL? ¿Necesito instalar algo en los servidores remotos?

esta es una captura de pantalla de mi php mi sección de administración

Esta es mi clase de conexion

<?php

class connection {

    private $connString;
    private $userName;
    private $passCode;
    private $server;
    private $pdo;
    private $errorMessage;
    protected $lastQueryTime;
    protected $lastQuery;

    private $pdo_opt = array (
                            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
                            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
                            );




    function __construct($dbName = DATABASE_NAME, $serverName = DATABASE_HOST){

        //sets credentials
        $this->setConnectionCredentials($dbName, $serverName);

        //start the connect
        $this->startConnection();

    }

    function startConnection(){


            $this->pdo = new PDO($this->connString, $this->userName, $this->passCode, $this->pdo_opt);

            if( ! $this->pdo){

                $this->errorMessage  = 'Failed to connect to database. Please try to refresh this page in 1 minute. ';
                $this->errorMessage .= 'However, if you continue to see this message please contact your system administrator.';
                echo $this->getError();
            }
    }


    //this will close the PDO connection
    public function endConnection(){

        $this->pdo = null;
    }

    //return a dataset with the results
    public function getDataSet($query, $data = NULL)
    {
        $start = microtime(true);
        $cmd = $this->pdo->prepare( $query );

        $cmd->execute($data);
        $ret = $cmd->fetchAll();
        //$cmd->closeCursor();
        $this->lastQueryTime = microtime(true) - $start;
        $this->lastQuery = $query;

        return $ret;
    }



    public function processQuery($query, $data = NULL)
    {
        $start = microtime(true);
               //$this->pdo->beginTransaction();


        $cmd = $this->pdo->prepare( $query );
        $ret = $cmd->execute($data);
               //$this->pdo->commit();
               //$cmd->closeCursor();
        $this->lastQueryTime = microtime(true) - $start;
        $this->lastQuery = $query;

        return $ret;
    }


    //return last insert id
    public function lastInsertId($name = NULL) {
        if(!$this->pdo) {
            return false;
        }

        return $this->pdo->lastInsertId($name);
    }



    public function getOneResult($query, $data = NULL){
        $cmd = $this->pdo->prepare( $query );
        $cmd->execute($data);

        return $cmd->fetchColumn();
    }

    public function getError(){
        if($this->errorMessage != '')
            return $this->errorMessage;
        else
            return true;  //no errors found

    }

    //this where you need to set new server credentials with a new case statment
    function setConnectionCredentials($dbName, $serv){

        switch($serv){


            //MS SQL server
            case 'SQLSERVER':
                $this->connString   = 'sqlsrv:server='.$serv.';database='.$dbName;
                $this->userName     = 'username';  
                $this->passCode     = 'password';  
            break;

            //the defaults are predefined in the APP_configuration file - DO NOT CHANGE THE DEFAULT
            default:
                $this->connString   = 'mysql:host='.DATABASE_HOST.';dbname='.DATABASE_NAME.';charset=utf8';
                $this->userName     = DATABASE_USERNAME;
                $this->passCode     = DATABASE_PASSWORD;
            break;

            }

    }


public function lastQueryTime() {
    if(!$this->lastQueryTime) {
        throw new Exception('no query has been executed yet');
    }
    return $this->lastQueryTime;
}

public function lastQuery() {
    if(!$this->lastQuery) {
        throw new Exception('no query has been executed yet');
    }
    return $this->lastQuery;
}



}



?>

Así es como uso mi clase para extraer un conjunto de datos

<?php
include('connection.php');

$sql_db = new connection('databaseName','SQLSERVER');

$call_details = $sql_db->getDataSet('SELECT
                                    LocalUserId AS loginName,
                                    RemoteNumberCallId AS PhoneNumber,
                                    SUM(CallDurationSeconds + HoldDurationSeconds + LineDurationSeconds) AS totalTalk
                                    FROM dbo.CallDetail WHERE LocalUserId = \'blah\' AND RemoteNumberCallId = \'123456789\'
                                    GROUP BY LocalUserId, RemoteNumberCallId');


$call_details->endConnection();

?>

Incluso he probado este código, así que no usaré mi clase y sigo recibiendo el mismo error

 $ss = new PDO("sqlsrv:server=SQLSERVER; Database=databaseName", "userName", "Password");

Respuestas a la pregunta(2)

Su respuesta a la pregunta