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

12/02/2016

0

PHP

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);

?>
Abilio Rodrigues

Abilio Rodrigues

Responder

Post mais votado

12/02/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

William

William
Responder

Mais Posts

12/02/2016

Marcio Araujo

O serviço inicia normalmente?
Responder

12/02/2016

Jothaz

Uso o PHP com IIS sem nenhum problema.

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

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?
Responder

12/02/2016

Marcio Araujo

IIS roda qualquer aplicativo web?
Responder

12/02/2016

Jothaz

IIS roda qualquer aplicativo web?


Não!

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

12/02/2016

Marcio Araujo

Valeu Jothaz.
Responder

15/02/2016

Abilio Rodrigues

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!
Responder

15/02/2016

Abilio Rodrigues

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));
}

?>
Responder

05/05/2016

Thiago Veloso

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á!!!!
Responder

05/05/2016

William

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!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar