Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 545507
            [titulo] => Problema Conexao PHP com Banco de Dados IIS Servidor Windows sem apache
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-02-12 18:49:20
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => A
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => Abilio temos 2 problemas sérios nesse cenário, falo isso porque trabalho com PHP, SQL Server no IIS 7.5 todos os dias:

1 - O PHP e o SQL Server não são muito amigos e por isso é super chato configurar uma conexão entre os 2

2 - As extensões de conexão (no seu caso mssql_) são bem delicadas para ser compatíveis com a versão do SQL Server e do sistema operacional


O PHP sem conexão com o banco de dados funciona bem com IIS, no meu caso tive que achar a versão de compilação correta (pdo_sqlsrv.dll) que fosse compatível com o seguinte cenário:

- SQL Server 2008 R2 x64
- Windows Server 2008 R2 x64
- PHP 5.3 x86 (foi a única versão que funcionou)
- PDO_SQLSRV.dll compilado para x86

Observe a riqueza de detalhes, qualquer variação nesse cenário para tudo, estamos com esse ambiente estável a 2 anos e sem reclamações, emitindo NFS-e, Boleto e Pagamento Online.

Demorei uns 30 dias para acertar a mão nessa configuração, quase desisti .. rsrsrs ) )

Problema Conexao PHP com Banco de Dados IIS Servidor Windows sem apache

PHP
Abilio Rodrigues
   - 12 fev 2016

Boa Tarde, estou tentando fazer a conexão abaixo por PHP com um banco de dados que está em um servidor Windows com IIS com suporte para PHP, porem não é possível se conectar, não aparece mensagem de erro, é como se o código se quer fosse interpretado. O interessante é que códigos simples de PHP funciona com o "echo "Olá Mundo"; porem o que está abaixo não roda a pagina ficar em branco.! e não posso colocar o wampp nem o APACHE alguém tem alguma ideia do que seja!
<?php
/* conecta banco de dados, cria uma base de dados ou data base e fecha a conexao*/
$conexao = int mssql_connect("servido.com.br","usuario","senha") or die ("Conexão Falhou:");
mssql_select_db ("bancodedados", $conexao);
$sql= "SELECT * FROM tabela";
$rs= mssql_query ($sql, $conexao);
echo "<pre>";
while ($row = mssql_fetch_array($rs)) {
print_r($row);
}
mssql_close($conexao);
?>

Post mais votado

William (devwilliam)
   - 12 fev 2016

Abilio temos 2 problemas sérios nesse cenário, falo isso porque trabalho com PHP, SQL Server no IIS 7.5 todos os dias:

1 - O PHP e o SQL Server não são muito amigos e por isso é super chato configurar uma conexão entre os 2

2 - As extensões de conexão (no seu caso mssql_) são bem delicadas para ser compatíveis com a versão do SQL Server e do sistema operacional

O PHP sem conexão com o banco de dados funciona bem com IIS, no meu caso tive que achar a versão de compilação correta (pdo_sqlsrv.dll) que fosse compatível com o seguinte cenário:

- SQL Server 2008 R2 x64
- Windows Server 2008 R2 x64
- PHP 5.3 x86 (foi a única versão que funcionou)
- PDO_SQLSRV.dll compilado para x86

Observe a riqueza de detalhes, qualquer variação nesse cenário para tudo, estamos com esse ambiente estável a 2 anos e sem reclamações, emitindo NFS-e, Boleto e Pagamento Online.

Demorei uns 30 dias para acertar a mão nessa configuração, quase desisti .. rsrsrs

Marcio Araujo
   - 12 fev 2016

O serviço inicia normalmente?

Jothaz
   - 12 fev 2016

Uso o PHP com IIS sem nenhum problema.

Ative as mensagens de erros no PHP se não me falha a memória é assim:

#Código

ini_set('display_errors',1);
ini_set('display_startup_erros',1);
error_reporting(E_ALL);


Não testei então pode ocorrer errro, se ocorre procure na documentação do PHP online.

Rode e veja se aparece algum erro.

O banco esta rodando?
Consegue conecetar ao banco por outr software (Management, Toad e etc) usando o usuário e senhas?

Marcio Araujo
   - 12 fev 2016

IIS roda qualquer aplicativo web?

Jothaz
   - 12 fev 2016


Citação:
IIS roda qualquer aplicativo web?


Não!

Mas roda PHP (sem problemas) e Python. Fora os produtos da Microsoft (asp, .net, wcf e etc).

Marcio Araujo
   - 12 fev 2016

Valeu Jothaz.

Abilio Rodrigues
   - 15 fev 2016

William mudei meu código, para o código abaixo:
<?php
$hostname = "servido.com.br";
$dbname = "banco";
$username = "usuario";
$pw = "senha";

try {
$DBH = new PDO('sqlsrv_connect:Server='.$servername.';Database='.$database, $user, $pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>

ou

<?php
//phpinfo();

try {
$hostname = "servido.com.br";
$dbname = "banco";
$username = "usuario";
$pw = "senha";
$DBH = new PDO ("sqlsrv_connect:host=$hostname;dbname=$dbname","$username","$pw");

//$dbh = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Erro de Conexao " .$e->getMessage(). "\n";
exit;
}

?>

Agora mensagem de erro é "could not find driver"!
O servidor é 2012 e eu consigo logar no banco normalmente!
a versão do PHP É 5.5.11.

Caso seja configuração do servidor preciso saber especificamente o que é para área responsável fazer a configuração e também não tenho acesso ao php.ini e para piorar minha situação não tenho experiência com PHP!

Abilio Rodrigues
   - 15 fev 2016

Consegui roda com o código abaixo! valeu pela ajuda!

<?php

// Dados do banco
$dbhost = "NOME DO HOST"; #Nome do host
$db = "BANCO DE DADOS"; #Nome do nosso banco de dados
$user = "USUARIO"; #Nome do usuário
$password = "SENHA"; #Senha do usuário

$conninfo = array("Database" => $db, "UID" => $user, "PWD" => $password);
$conn = sqlsrv_connect($dbhost, $conninfo);

if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}

?>

Thiago Veloso
   - 05 mai 2016


Citação:
Abilio temos 2 problemas sérios nesse cenário, falo isso porque trabalho com PHP, SQL Server no IIS 7.5 todos os dias:

1 - O PHP e o SQL Server não são muito amigos e por isso é super chato configurar uma conexão entre os 2

2 - As extensões de conexão (no seu caso mssql_) são bem delicadas para ser compatíveis com a versão do SQL Server e do sistema operacional

O PHP sem conexão com o banco de dados funciona bem com IIS, no meu caso tive que achar a versão de compilação correta (pdo_sqlsrv.dll) que fosse compatível com o seguinte cenário:

- SQL Server 2008 R2 x64
- Windows Server 2008 R2 x64
- PHP 5.3 x86 (foi a única versão que funcionou)
- PDO_SQLSRV.dll compilado para x86

Observe a riqueza de detalhes, qualquer variação nesse cenário para tudo, estamos com esse ambiente estável a 2 anos e sem reclamações, emitindo NFS-e, Boleto e Pagamento Online.

Demorei uns 30 dias para acertar a mão nessa configuração, quase desisti .. rsrsrs


Willian... Bom dia... Eu sou novo aqui e também na programação e estou estudando PHP e estou com uma dúvida bem relacionada ao cenário que vc listou acima...

Primeiramente gostaria de saber de fato se Apache e IIS trabalham da mesma forma... Se por acaso eu desenvolver algo usando um servidor Apache, eu consigo rodar em IIS...

E ai entra o problema... Estou desenvolvendo algumas aplicações para uma empresa que vão rodar numa Intranet... Essa empresa usa um servidor com Windows Server. Eu instalei o IIS nesse servidor e consegui rodar as aplicações feitas em ASP que já tinha feito alguns anos atrás.. Como estou estudando PHP através do WampServer que instalei em meu computador, estou na dúvida se o que eu fizer vai rodar na intranet em IIS.

Gostaria de saber também se consigo instalar o Apache no windows Server e fazer ele rodar normal... Ou se o caminho seria somente através do IIS... Nesse caso gostaria de te pedir ajuda nessas configurações que vc disse ter levado 30 dias pra acertar a mão... Tenho menos de 10 dias pra entregar meu trabalho... :)

Muito obrigado desde já!!!!

William (devwilliam)
   - 05 mai 2016

O Apache roda sim no Windows Server mas como roda aplicações no IIS com ASP tem que verificar a questão das portas para não dar conflito com IIS.

Basicamente o que foi desenvolvido no Apache roda no IIS, exceto extensões que você habilitou manualmente, claro que é recomendável que a versão do PHP seja a mesma.

Se você trabalhar com banco de dados MySQL vai conseguir trabalhar com PHP no IIS, mas se for SQL Server meu amigo aí ferrou, ainda mais com apenas 10 dias para fazer os testes!