A principal novidade que identifiquei foi a compatibilidade com FastCGI funcionando 100% no IIS (antes era Apache ou funcionando ‘meia-boca’ no modo CGI do IIS), código-fonte do PHP feito no Visual Studio 2008 (antes Visual C++ 6) e instalador que funciona 100% no Windows x64, conforme comprovo com o artigo, instalando no Windows 7 x64.
Como eu já tinha o ‘IIS 7.5’ instalado por causa do SSRS 2005, a única opção adicional que marquei foi em Recursos de Desenvolvimento de Aplicativos a opção CGI, pois caso ela não esteja marcada, só será possível instalar no modo CGI tradicional.
Depois de baixar uma versão do PHP no site
[Somente usuários registrados podem vem os links. ] vamos à instalação, no caso estou utilizando a versão “VC9 x86 Thread Safe – Installer”:
Selecione a pasta de destino, não tem problema instalar no local sugerido:
Já que foi habilitada a opção CGI no IIS, é possível instalar no modo “IIS FastCGI”:
Determine o que as extensões e extras que deseja instalar. Como padrão as extensões já trazem marcadas as DLL do PostGreSQL e do MySQL:
Concluída a instalação vamos realizar o primeiro teste, para isso crie na pasta das aplicações web do IIS (por padrão, C:\inetpub\wwwroot ) um arquivo ‘index.php’ com o seguinte código:
Código PHP:
<?php
phpinfo();
?>
E como resultado:
Agora, vamos à instalação das extensões do SQL Server. No site de downloads da Microsoft (
[Somente usuários registrados podem vem os links. ]) procure “SQL Server PHP”, se você encontrar o “
[Somente usuários registrados podem vem os links. ]”, pode ficar tranqüilo que ele funciona. Mas se preferir uma versão mais segura tente o “
[Somente usuários registrados podem vem os links. ]”.
Na instalação do SQL Server Driver for PHP (se possível, execute como administrador o instalador), recomendo informar uma pasta temporária, pois você somente precisará de uma das DLLs que serão instaladas.
Feita a instalação (normalmente ela dá erro, mas não se preocupe as DLLs vão para a pasta corretamente, mesmo com erro), copie a DLL de acordo com a versão do PHP, exemplo “PHP 5.3 VC9x86 Thread Safe” é “php_sqlsrv_53_ts_vc9.dll” e coloque na pasta de extensões do PHP (normalmente ‘C:\Program Files (x86)\PHP\ext’) e adicione no arquivo php.ini (normalmente na pasta ‘C:\Program Files (x86)\PHP’) as linhas seguintes, conforme o nome de sua DLL:
Código:
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts_vc9.dll
Procure colocar estas linhas junto às outras definições de extensões, deixando o arquivo manutenível em futuras necessidades.
Antes de testar, se caso o computador não tiver o SQL Server instalado na mesma máquina, instale o SQL Server Native Client:
[Somente usuários registrados podem vem os links. ]
Outro detalhe antes de testar, reinicie o serviço do IIS (por desencargo de consciência), depois veja novamente aquele arquivo PHP que criado anteriormente.
Se tudo der certo, procurando “sqlsrv”, você encontrará o detalhamento da extensão do SQL Server:
Para um teste (no caso utilizei um usuário “sa” com senha “123456”, o SQL Server na máquina “localhost”, com SQL Authentication habilitado), crei o seguinte código:
Código PHP:
<pre>
<?php
//Definição do servidor (no caso "." pode substituir "localhost")
$serverName = ".";
//Definição de banco de dados, usuário e senha
$connectionInfo = array(
"Database"=>"master",
"UID"=>"sa",
"PWD"=>"123456"
);
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn === false)
{
echo "Bug: Alguma coisa errada na conexão.\n";
print_r(sqlsrv_errors());
}
else
{
//Query modelo
$tsql = "SELECT name FROM sys.all_views WHERE name LIKE 'dm%' ORDER BY name";
$stmt = sqlsrv_query($conn, $tsql);
if ($stmt)
{
echo "Resultado:\n";
//Loop para os resultados
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC))
{
echo $row[0] . "\n";
}
//Importante: Fechar a query
sqlsrv_free_stmt($stmt);
}
else
{
echo "Bug: Alguma coisa errada na query.\n";
print_r(sqlsrv_errors());
}
// Importante: Fechar a conexão
sqlsrv_close($conn);
}
?>
</pre>
E como resultado:
A partir daqui, o material no site do MSDN será de grande utilidade para entender como funciona as funções do SQL Server Driver for PHP:
[Somente usuários registrados podem vem os links. ]