Bem, para não perder o embalo por aqui, e a pedidos de alguns colegas meus de trabalho aqui do MEC, estou estou escrevendo um mini tutorial para “fazer funcionar” utilizarmos sem problemas as funções mssql do PHP rodando em um servidor LAMP (Leia-se: Linux, Apache, Mysql, PHP (Perl ou Python)) e assim termos um acesso ilimitado aos recursos do servidor MsSQL Server.
Para tanto não precisamos de muitas armas na mão, somente algumas extensões, bibliotecas e configurações finas. Pois bem, como alguns sabe, as funções mssql utilizam o ODBC e Freetds como base para suas operações. Então vamos à instalação de pacotes =):
# apt-get install php5-mssql freetds-dev tdsodbc unixodbc unixodbc-bin
Bem, segundo muitos materiais que encontrei por aà em inglês, garantem que o Freetds roda “fine” com o unixodbc, por isso decidi partir para esta última tentativa em busca da “felicidade” (por que ser feliz é usar mysql ou pgsql, não mssql). Então depois de instalar o freetds e o unixodbc, descobri que não se trataba apenas de instalar e deu, eu precisaria neste caso configurar algumas coisinhas, mas nada de mais. Primeiramente configurar o freetds, muito simples, só precisamos adicionar o driver padrão para conectarmos e mapear um servidor. Adicione o mapeamento ao final do arquivo /etc/freetds/freetds.conf conforme exemplo abaixo:
[MeuBanco] host = meu.banco.dedados port = 1433 tds version = 8.0 ; A versão do tds tem um valor de acordo com o banco de dados a ser conectado, no meu caso precisei utilizar para o MsSql Server 2000 (Driver 8.0) Abaixo vou listar todas as versões disponiveis para acesso via freetds:
* Sybase before System 10, Microsoft SQL Server 6.x: tds version = 4.2 * Sybase System 10 and above: tds version = 5. * Microsoft SQL Server 7.0: tds version = 7.0 * Microsoft SQL Server 2000: tds version = 8.0 ** Caso haja dúvida, teste com uma versão menor
Em alguns casos, parando por aqui já está tudo certo, vc tem acesso livre para conexão, mas agora estarei postando um extra, que é para garantir que seu apache/php irá autenticar diretamente no servidor mssql e você poderá acessar esse banco a partir de qualquer software linux, incluindo o OpenOffice Base. Então vamos lá para a configuração do UNIXODBC. Primeiramente você deve iniciar a edição do arquivo /etc/odbc.ini. Inserindo as seguintes configurações:
[meubd] Description = FreeTDS Driver = FreeTDS Servername = meubd Database = aaa UID = bbb PWD = ******* Port = 1433 E no arquivo /etc/odbcinst.ini adicione essas configurações:
[FreeTDS] Description = Para conectar com MSSQL e Sysbase Driver = /usr/lib/odbc/libtdsodbc.so Driver64 = /usr/lib Setup = /usr/lib/odbc/libtdsS.so Setup64 = /usr/lib UsageCount = 1 CPTimeout = CPReuse =
Vá até o arquivo /etc/php5/apache2/php.ini e faça a seguinte modificação:
#descomentem e caso for necessario modifiquem o charset da linha: msssql.charset = "UTF-8"
Bom pessoal, acho que é somente isso, qualquer dúvida, problema ou sugestão em relação a esse passo-a-passo podem entrar em contato comigo que buscaremos a melhor solução.
Ps: Não esqueçam de reiniciar o daemon do apache!
















Cara, tenho um problema com conexão com tds da uma mensagem:
Password:
Msg 20017, Level 9, State -1, Server OpenClient, Line -1
Unexpected EOF from the server
Msg 20002, Level 9, State -1, Server OpenClient, Line -1
Adaptive Server connection failed
There was a problem connecting to the server
Ja configurei como você descreveu.
buenas amigo, primeiramente me desculpe a demora em responder o tópico, mas realmente passei dias e noites em meus projetos… bom, esse erro acontece exatemente quando?
o package php5-mssql existe?
não consigo instalar, diz que não existe.
Bom amigo, veja na configuração de seus repositórios, utilize o servidor principal do Ubuntu e programas mantidos por terceiros, talvez seja isso.
Não estou tendo sucesso com minha conexão, tenho desenvolvido um projeto em delphi e não tive sucesso na conexão MSSQL não localiza. Já o meu projeto no netbeans consigo com perfeição. Ficaria grato por sua ajuda se posivel.
Então, o java se não me engano faz isso tudo com o JDBC, esses passos resolveram meu problema para o acesso via apache, com o delphi talvez ele mesmo tenha o driver para fazer esta conexão