Damon 20 Denunciar post Postado Dezembro 10, 2013 Amigos, estou tendo dificuldade em fazer aminha conexão com o banco de dados SQL Server remotamente. A minha aplicação está rodando em um servidor Linux e o banco de dados esta em uma maquina no Windows. Os drives do mssql já estão estalados no meu php. Alguém já passou por isto e pode esta me este orientando. OBS: Quando eu estava fazendo a conexão em um servidor local exemplo: Wamp, Xampp na minha na minha própria maquina funcionou normalmente . O erro que esta dando é este aqui:Warning: mssql_connect(): Unable to connect to server: 192.168.0.2,1433 in /var/www/teste/teste.php on line 11 Warning: mssql_select_db(): Unable to connect to server: in /var/www/teste/teste.php on line 12 Warning: mssql_select_db(): A link to the server could not be established in /var/www/teste/teste.php on line 12 Deu errado Compartilhar este post Link para o post Compartilhar em outros sites
Massaki 47 Denunciar post Postado Dezembro 10, 2013 Você quer que um servidor remoto acesse uma máquina na sua rede local? Então você teria que configurar roteamento no seu modem, e se o seu endereço ip não é fixo, teria que usar o noIP. Compartilhar este post Link para o post Compartilhar em outros sites
Damon 20 Denunciar post Postado Dezembro 10, 2013 Você quer que um servidor remoto acesse uma máquina na sua rede local? Então você teria que configurar roteamento no seu modem, e se o seu endereço ip não é fixo, teria que usar o noIP. Massaki é exatamente isto...eu tenho um ip aonde roda a minha aplicação no linux eu consigo acessar o meu arquivo em qualquer maquina, por exemplo os meus arquivos html abre normalmente a conexão com o banco não esta ocorrendo. Me fala mais dessa configuração no moldem, como que funciona ? Alguém ? Compartilhar este post Link para o post Compartilhar em outros sites
Massaki 47 Denunciar post Postado Dezembro 10, 2013 Você tem o manual do modem? Tem que saber se ele suporta o roteamento. E o IP, é fixo/dedicado? Compartilhar este post Link para o post Compartilhar em outros sites
Damon 20 Denunciar post Postado Dezembro 11, 2013 Você tem o manual do modem? Tem que saber se ele suporta o roteamento. E o IP, é fixo/dedicado? Manual eu não tenho, quem fez a comunicação FTP não foi eu foi o meu chefe. O servidor web é linux e o servidor do banco é windows. O IP é fixo. Alguém já passou por isso? Compartilhar este post Link para o post Compartilhar em outros sites
Raul Silva 41 Denunciar post Postado Dezembro 12, 2013 Conecte pelo Server Name, e não pelo IP, tente fazer isso =) Obs: veja exemplos no php.net (http://php.net/mssql_connect) Nota: Caso você atualizar o PHP, você perderá o mssql, tera de usar o sqlsrv_connect (http://php.net/sqlsrv_connect) Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Dezembro 12, 2013 Na máquina Linux, verifique se você consegue acessar a porta do servidor MSSQL: [inline]nc -vv [ip-do-windows] [porta-do-mssql][/inline] Compartilhar este post Link para o post Compartilhar em outros sites
Damon 20 Denunciar post Postado Dezembro 12, 2013 Na máquina Linux, verifique se você consegue acessar a porta do servidor MSSQL: [inline]nc -vv [ip-do-windows] [porta-do-mssql][/inline] Então Evandro eu até estava pensando que poderia ser a porta, só que o FTP que eu estou usando esta somente dentro da minha rede utilizando somente os ip para conexão . No caso se eu tive usando ele externo ai realmente eu teria que desbloquear a porta 1433 do mssql por teria que configura o modem junto proxy etc. Eu estou desconfiado que esse modulo mssql que agente estala no php que vem com o servidor ele não funciona no servidor linux pelo fato do sql server ser da microsoft, ouvi falar que a microsoft lanço um drive ODBC especialmente para servidores linux, o problema é que se for pra mim utiliza a conexão ODBC eu vou ter restrutura to o meu código e vou fica muito limitado ou seja trabalho dobrado e mais gastos. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Dezembro 12, 2013 Então Evandro eu até estava pensando que poderia ser a porta, só que o FTP que eu estou usando esta somente dentro da minha rede utilizando somente os ip para conexão . No caso se eu tive usando ele externo ai realmente eu teria que desbloquear a porta 1433 do mssql por teria que configura o modem junto proxy etc. Eu estou desconfiado que esse modulo mssql que agente estala no php que vem com o servidor ele não funciona no servidor linux pelo fato do sql server ser da microsoft, ouvi falar que a microsoft lanço um drive ODBC especialmente para servidores linux, o problema é que se for pra mim utiliza a conexão ODBC eu vou ter restrutura to o meu código e vou fica muito limitado ou seja trabalho dobrado e mais gastos. Vamos lá: O P, de FTP, significa Protocolo. Via de regra, cada protocolo catalogado tem uma porta específica. No caso, quando você for enviar seus arquivos para o servidor via FTP, o padrão é 21, a menos que informem o contrário. Assim quando alguém quer disponibilizar um servidor FTP, desbloqueia a porta 21. HTTP, o protocolo padrão da navegação web, ocorre comumente sob a porta 80. Assim, quando você deseja servir páginas web ao mundo, precisa desbloquear a porta 80 ou informar aos visitantes que você utiliza uma outra porta diferente do comum. O servidor SQL da Microsoft não é um servidor FTP, nem HTTP, é um servidor com protocolo proprietário que usa, por padrão, a porta 1433. Novamente, isso pode ser alterado e deverá ser informado aos interessados. Uma vez que você entendeu que o FTP funcionar não tem nada a ver com o seu problema - se não entendeu, releia os parágrafos acima até entender - vamos focar/atacar o problema de verdade: O acesso à porta do servidor SQL. Normalmente, as empresas instalam proxy para cuidar da navegação web, mapeando apenas requisições na porta 80. Contudo, é possível que você esteja sob um proxy que cuide de todo e qualquer pedido e, assim, deverá informar ao administrador de rede essa necessidade de se comunicar com uma porta 1433 externa. Dentro da mesma rede, não haverá necessidade de tocar no modem. Caso contrário, poderá ser necessário fazer um mapeamento NAT para o IP do servidor SQL. Se o modem oferecer suporte a DMZ pode ser uma alternativa mais fácil. Independentemente do seu cenário, é impreterível o desbloqueio da porta onde o servidor SQL está escutando, na máquina onde o servidor SQL está escutando, para requisições externas. Por último, se quiser contando com a minha ajuda, sugiro que forneça as informações solicitadas para que possamos isolar as possibilidades e trabalhar de forma eficiente. Já é difícil o suficiente ficar imaginando o seu cenário. Na base do chute, então, eu dispenso. Na máquina Linux, verifique se você consegue acessar a porta do servidor MSSQL: [inline]nc -vv [ip-do-windows] [porta-do-mssql][/inline] Compartilhar este post Link para o post Compartilhar em outros sites
Damon 20 Denunciar post Postado Dezembro 12, 2013 Evandro Oliveira Acho que você entendeu errado o que eu falei ou você não leu com atenção. Eu não falei que O servidor SQL da Microsoft é um servidor FTP eu falei que quando agente compra um servidor dependendo da marcar eles oferece modos e pacotes para instalação e gerenciamento de arquivos no nosso caso veio os módulos que pode ser instalado no php o que no Windows é chamado dll. Eu sei muito bem que FTP significa: File Transfer Protocol (Protocolo de Transferência de Arquivos) sei como é o seu funcionamento você não precisa me lembra. OK Agora olha o que você mesmo escreveu: Dentro da mesma rede, não haverá necessidade de tocar no modem. Caso contrário, poderá ser necessário fazer um mapeamento NAT para o IP do servidor SQL. Se o modem oferecer suporte a DMZ pode ser uma alternativa mais fácil. Quanto ao que você me pediu:Na máquina Linux, verifique se você consegue acessar a porta do servidor MSSQL: nc -vv [ip-do-windows] [porta-do-mssql] a resposta já esta na sua propiá resposta acima que coloquei em negrito "Dentro da mesma rede......." O firewall esta desabilitado !ok Espero que tenha entendido o que eu quis dizer agora, se quiser me ajudar seja bem vindo se não agradeço pela sua atenção. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Dezembro 13, 2013 Eu sei muito bem que FTP significa: File Transfer Protocol (Protocolo de Transferência de Arquivos) sei como é o seu funcionamento você não precisa me lembra. OK Apenas quis esclarecer o que o fato do FTP estar ou não funcionando não tem nada a ver com o seu problema, uma vez que você cita o protocolo não uma, mas duas vezes: Então Evandro eu até estava pensando que poderia ser a porta, só que o FTP que eu estou usando esta somente dentro da minha rede utilizando somente os ip para conexão . Manual eu não tenho, quem fez a comunicação FTP não foi eu foi o meu chefe. É excelente saber que você sabe o que é, como funciona e pra que serve. Isso quer dizer que não precisaremos mais sequer mencionar o FTP até a solução deste tópico, correto? Agora olha o que você mesmo escreveu: Dentro da mesma rede, não haverá necessidade de tocar no modem. Caso contrário, poderá ser necessário fazer um mapeamento NAT para o IP do servidor SQL. Se o modem oferecer suporte a DMZ pode ser uma alternativa mais fácil. Preciso saber de onde estão partindo os testes. Qual máquina está executando a linha 11 do arquivo teste.php. Dado o caminho, imagino que seja o servidor web, rodando sob um Linux, estou correto? Se este servidor web Linux estiver na mesma rede que o servidor SQL, você não precisará se preocupar com portas de modem. Sugiro que habilite o firewall no servidor SQL. Principalmente se for aquele padrão que já vem com o Windows. Dependendo do tipo da rede escolhida, o Windows barra todos os pedidos externos se o firewall estiver desligado. "Para sua própria segurança", segundo eles. Quanto ao que você me pediu:Na máquina Linux, verifique se você consegue acessar a porta do servidor MSSQL: nc -vv [ip-do-windows] [porta-do-mssql] a resposta já esta na sua propiá resposta acima que coloquei em negrito "Dentro da mesma rede......." O firewall esta desabilitado !ok Não. A resposta não está em lugar nenhum. Como resposta eu esperaria algo do tipo: nc: connect to 127.0.0.1 port 1433 (tcp) failed: Connection refused ou Connection to 127.0.0.1 80 port [tcp/http] succeeded! Espero que tenha entendido o que eu quis dizer agora, se quiser me ajudar seja bem vindo se não agradeço pela sua atenção. A intenção em ajudar existe, dado o tempo que já foi dispensado neste tópico. A eficiência da ajuda é diretamente proporcional à relevância das informações fornecidas. Compartilhar este post Link para o post Compartilhar em outros sites
Damon 20 Denunciar post Postado Dezembro 13, 2013 Apenas quis esclarecer o que o fato do FTP estar ou não funcionando não tem nada a ver com o seu problema, uma vez que você cita o protocolo não uma, mas duas vezes: Mencionei apenas para mostra que era uma conexão interna ou seja na mesma rede. Preciso saber de onde estão partindo os testes. Qual máquina está executando a linha 11 do arquivo teste.php. Dado o caminho, imagino que seja o servidor web, rodando sob um Linux, estou correto? Se este servidor web Linux estiver na mesma rede que o servidor SQL, você não precisará se preocupar com portas de modem. Se você tivesse prestado atenção no que eu fale na primeira resposta já saberia que era isto. Não. A resposta não está em lugar nenhum. Como resposta eu esperaria algo do tipo: nc: connect to 127.0.0.1 port 1433 (tcp) failed: Connection refused Connection to 127.0.0.1 80 port [tcp/http] succeeded! Agora te pergunto como que vou conectar a alguma porta se estou na mesma rede ?????? A intenção em ajudar existe, dado o tempo que já foi dispensado neste tópico. A eficiência da ajuda é diretamente proporcional à relevância das informações fornecidas. Agradeço por você te tentado, o limite da sua capacidade está até onde você acredita! Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Dezembro 13, 2013 Agora te pergunto como que vou conectar a alguma porta se estou na mesma rede ??????A princípio, a porta independe de rede. Quem bloqueia (ou não), dependendo da rede, (ou não) é o firewall. Os resultados do exemplo anterior foram postados com base em testes - inclusive - na máquina local. Mas seguem exemplos (reais) de teste de escuta de porta em rede local evandro at nb-4745 in ~ $ nc -vv 192.168.1.103 139 Connection to 192.168.1.103 139 port [tcp/netbios-ssn] succeeded! ^C evandro at nb-4745 in ~ $ nc -vv 192.168.1.103 445 Connection to 192.168.1.103 445 port [tcp/microsoft-ds] succeeded! Veja que o IP é bastante similar ao [inline]192.168.0.2[/inline] que você usa no seu código. Compartilhar este post Link para o post Compartilhar em outros sites