Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AlexandreHenrique

IIS - PHP5.6 - SQL Server não consigo conexão com banco

Recommended Posts

Boa noite amigos,

estou com um problema ao tentar me conectar ao SQL server 2005 com PHP 5.6. O servidor é o IIS.

 

Contudo, o PHP está rodando normal. Mas há algumas coisas que notei e não compreendo; Vamos por partes:

 

Veja abaixo na tela do phpinfo():

 

2e4d6vc.jpg

 

1. na linha "Configuration File(php.ini) Path", que mostra onde deveria estar o meu php.ini.

2. na linha "Loaded Configuration File" deveria mostrar o caminho correto do meu php.ini, mas exibe "(none)".

 

De fato, verifiquei em C:\Windows e não há o arquivo php.ini

 

Procurei esse arquivo em C:\php. Busquei por "php.ini" e retornaram dois arquivos:

1 - php.ini-development

2- php.ini-production

 

Onde está o php.ini? O que devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve escolher um desses dois arquivos, e criar uma cópia com o nome de php.ini na mesma pasta. Estes arquivos são apenas exemplos.

 

Se for ambiente de desenvolvimento utilize o arquivo php.ini-development como exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz isso.

Fiz a cópia do php.ini-development e renomeei o arquivo para php.ini, mas, a tela do phpinfo() não carrega mais.

 

Exibe a mensagem

500 - Internal server error. There is a problem with the resource you are looking for, and it cannot be displayed.

 

Porém, executei um script simples em php e está rodando normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dentro do IIS você tem acesso ao PHP Manager?

 

Caso tenha, verifique para qual pasta está apontando o executável em PHP Setup.

 

Se não tiver ele, instala o Microsoft Web Platform e faça a instalação do PHP por ele, inclusive com os drivers para acesso ao SQL Server.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Clica no PHP Manager, dentro do IIS, de preferência em Sites/Default Web site (que por padrão aponta para Inetpub/wwwroot/, que é onde provavelmente seu site está, correto?).

 

Dentro do PHP Manager você consegue visualizar para onde está apontando. Se não estiver apontando para lugar nenhum você pode clicar em Register e apontar para onde o PHP está na sua máquina ou então instalar através do Web Platform.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem PHP Manager no IIS. Emtão pesquisei pela web e vi isso:

"Muita gente pediu e foi lançado no Codeplex o PHP Manager. Com essa ferramenta você pode gerenciar uma ou mais

versões de PHP, mas só é compatível com o IIS 7 e 7.5.

 

O meu IIS é o 8.

 

Vou ver o que faço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Houve um avanço!

Através do Microsoft Web Platform instalei uma versão mais nova do php (PHP Version 5.6.22) por cima da já instalada (PHP Version 5.6.15) e agora a tela do phpinfo(); esta exibindo isso:

 

Configuration File (php.ini) Path: C:\Windows

Loaded Configuration File: C:\Program Files (x86)\PHP\v5.6\php.ini
Agora sabemos onde tá o php.ini e podemos avançar para realizar a conexão com o SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Através do PHP Manager você consegue habilitar e desabilitar extensões.. verifica se possui a extensão do sql server r se está habilitada. Caso não esteja, você consegue instalar pelo Web Platform.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por FabianoSouza
      Preciso corrigir o erro "Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS." da minha consulta.
      SELECT TA.titulo AS 'Trilha' , (SELECT CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental ,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico FROM ( SELECT SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental, SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico, COUNT(*) AS Total FROM dbo.tabB ) tab ) FROM dbo.tabA AS TA Nessa consulta, preciso trazer o título (da tabA) e o resultado de um cálculo feito na subconsulta, nos campos Comportamental e Técnico.
    • Por AlexandreHenrique
      Olá pessoal. preciso de uma ajuda com o meu projeto de upload.
      O projeto de upload roda no IIS + Php;
      Tenho um script que ta enviando  o arquivo para o diretório correto.
      O problema é que ao tentar acessar esse arquivo via URL, o anexo não abre  e exibe a mensagem abaixo.
       

      Notei que o arquivo ao cair no DIR, ele entra sem permissões (vi em propriedades), se eu editar o mesmo alterando as permissões, ele carrega pela url do meu site.
      Quero que o arquivo enviado pelo script caia no DIR correta com as devidas permissões pra eu poder ler no navegador via URL;
       
      Já tentei resolver de toda forma mas nao tive sucesso;.
      No Apache isso é mais simples, mas no IIS ta complicado;
       
       
       
      Alguem pode me dá uma dica?
    • Por JoãoNeto2
      Eu estava usando um programa em PHP que conectava e lia um banco de dados SQL Server. Do nada ele parou de funcionar apresentando a seguinte mensagem :
      O cliente não pode estabelecer conexão porque foi encontrado um erro durante os handshakes anteriores ao logon. As causas comuns incluem a tentativa do cliente de conectar-se a uma versão sem suporte do SQL Server, o servidor muito ocupado para aceitar novas conexões ou uma limitação de recursos (memória ou máximo de conexões permitidas) no servidor.
      Algumas informações para esclarecer :
      1-Consigo conectar o banco via Dbeaver da própria máquina que o programa PHP deixou de funcionar
      2-De outra máquina consigo conectar esse mesmo banco com o mesmo programa PHP
      3-Essa mesma máquina conecta outro banco SQL Server de outro cliente
      Ou seja, o mesmo programa conecta o mesmo banco mas de outra máquina e a mesma máquina consegue conectar outro banco SQL.
      O que pode ser?
    • Por Kakaroto1309
      Preciso de uma ajuda para conectar com o banco. Estava tudo funcionando normalmente com MYSQL agora parou tudo e estou tentando trocar para MYSQLI.
      Não acho o erro, já tentei de tudo.
       
      connection.php
      <? function conecta() { $host = "localhost"; $user = "admin"; $pass = "123456789"; $db = "principal"; //Conexão $conexao = mysqli_connect($host, $user, $pass) or die("Erro na conexão:".mysqli_error()); //Selecionar BD mysqli_select_db($conexao,$db) or die("Erro ao selecionar BD"); } function desconecta() { mysqli_close(); } ?> validate.php
      <? if (empty($_POST) and (empty($_POST['cpUsuario']) OR empty($_POST['cpSenha']))) { header("Location: ../login.php"); exit; } else { include("connection.php"); conecta(); $varUsuario = $_POST['cpUsuario']; $varSenha = sha1($_POST['cpSenha']); $stt = "SELECT ID,txNome,txNivel FROM tbUsuario WHERE txUsuario='$varUsuario' and txSenha='$varSenha' LIMIT 1"; $sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao)); $existe = mysqli_num_rows($sql); if ($existe == 0) { echo "Login invalido ou inexistente na base"; exit; } else { $resultado = mysqli_fetch_assoc($sql); if (!isset($_SESSION)) { session_start(); } $_SESSION['UsuarioID'] = $resultado['ID']; $_SESSION['UsuarioNOME'] = $resultado['txNome']; $_SESSION['UsuarioNIVEL'] = $resultado['txNivel']; header("Location: ../menu.php"); exit; } } ?> O erro agora está dando o seguinte:
      PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, null given in /home4/public_html/connection/validate.php on line 17
       
      Linha 17 é essa:
      $sql = mysqli_query($conexao,$stt) or die(mysqli_error($conexao));
       
      Se eu tiro o $conexao do mysqli_query ele da erro de "mysqli_query() expects at least 2 parameters, 1 given" e se eu coloco o erro é "mysqli_query() expects parameter 1 to be mysqli, null given"
       
      Alguem sabe como posso resolver isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.