Como instalar o PHP com Driver do SQLSRV no Ubuntu 24.04

📘 Introdução PHP + SQL Server

Esta é uma tradução e adaptação técnica do tutorial oficial da Microsoft, com ajustes específicos para a versão 24.04 LTS do Ubuntu e para o PHP 8.3, que já está disponível nativamente. O driver SQLSRV é mantido pela Microsoft e permite que aplicações PHP se conectem diretamente ao SQL Server.

Neste artigo, você vai aprender como instalar SQLSRV no Ubuntu 24.04, utilizando exclusivamente pacotes disponíveis na própria distribuição. Essa abordagem garante segurança, compatibilidade com ambientes corporativos e elimina a dependência de repositórios externos.

Esse tipo de configuração é essencial em ambientes híbridos, onde servidores Linux (com PHP) precisam acessar bases de dados SQL Server hospedadas em servidores Windows ou na nuvem, garantindo confiabilidade, desempenho e suporte oficial.

🔍 O que é o SQLSRV?

O SQLSRV é o driver oficial da Microsoft para conexão entre o PHP e o SQL Server. Ele oferece suporte à API SQLSRV e à interface PDO (PHP Data Objects), permitindo que o desenvolvedor escolha a forma mais adequada para a aplicação.

Esse driver é amplamente utilizado por sistemas corporativos, ERPs, portais de intranet e aplicações web que exigem comunicação segura com bases SQL Server, sem depender de ferramentas intermediárias ou soluções alternativas não mantidas oficialmente.

⚖️ Por que usar SQLSRV e não outro driver?

Embora existam alternativas como o FreeTDS ou bibliotecas genéricas PDO_ODBC, o SQLSRV oferece vantagens importantes:

  • Suporte nativo da Microsoft;
  • Compatibilidade total com tipos de dados específicos do SQL Server;
  • Melhor tratamento de erros, transações e codificações;
  • Suporte a TLS/SSL e autenticação integrada (Windows Authentication);
  • Atualizações frequentes com suporte a novas versões do PHP e do SQL Server.

Utilizar o driver oficial garante maior estabilidade em ambientes produtivos e alinhamento com as boas práticas da própria Microsoft.

🛠️ Atualizando o sistema e instalando o PHP 8.3

Certifique-se de que o sistema está atualizado:

sudo apt update && sudo apt upgrade -y

Em seguida, instale o PHP 8.3 e os módulos necessários:

sudo apt install -y php php-dev php-xml php-cli php-common php-pear

Verifique a versão instalada:

php -v

A saída deverá indicar PHP 8.3.

🔗 Instalando o Microsoft ODBC Driver 18

O driver SQLSRV requer o Microsoft ODBC Driver 18. Execute os seguintes comandos para adicionar o repositório oficial da Microsoft e instalar o driver:

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/24.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt update
sudo ACCEPT_EULA=Y apt install -y msodbcsql18

Além disso, instale os arquivos de desenvolvimento do unixODBC:

sudo apt install -y unixodbc-dev

🧩 Instalando os drivers SQLSRV e PDO_SQLSRV com PECL

Agora com o PHP e o ODBC Driver instalados, utilize o PECL para instalar os drivers:

sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

Após a instalação, crie os arquivos .ini:

echo "extension=sqlsrv.so" | sudo tee /etc/php/8.3/mods-available/sqlsrv.ini
echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php/8.3/mods-available/pdo_sqlsrv.ini

Ative as extensões:

sudo phpenmod sqlsrv pdo_sqlsrv

Reinicie o serviço do servidor web (Apache ou PHP-FPM, conforme seu ambiente).

🌐 Configurando o Apache com PHP 8.3

Se estiver utilizando Apache:

sudo apt install -y apache2 libapache2-mod-php8.3
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
sudo a2enmod php8.3
sudo systemctl restart apache2

🧪 Testando a conexão do PHP com o SQL Server

Crie um arquivo de teste para validar a conexão com o banco de dados:

sudo vi /var/www/html/test_sqlsrv.php

Conteúdo:

<?php
$serverName = "192.168.1.100,1433";
$connectionOptions = [
"Database" => "nome_banco",
"Uid" => "usuario",
"PWD" => "senha"
];

$conn = sqlsrv_connect($serverName, $connectionOptions);
if ($conn) {
echo "Conexão bem-sucedida!<br>";

$result = sqlsrv_query($conn, "SELECT TOP 5 nome FROM clientes");
while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
echo "Cliente: " . $row['nome'] . "<br>";
}

sqlsrv_close($conn);
} else {
echo "Erro na conexão.<br>";
print_r(sqlsrv_errors());
}
?>

Acesse via navegador: http://SEU_SERVIDOR/test_sqlsrv.php

♻️ Como atualizar os drivers SQLSRV

Para manter os drivers atualizados, execute:

sudo pecl upgrade sqlsrv
sudo pecl upgrade pdo_sqlsrv

Reinicie o Apache após atualizações:

sudo systemctl restart apache2

Também é possível acompanhar atualizações no repositório oficial da Microsoft:
https://github.com/Microsoft/msphpsql

🔐 Dicas de segurança para ambientes de produção

  • Nunca exponha arquivos de teste em produção (como o test_sqlsrv.php).
  • Armazene credenciais em arquivos .env e use getenv() no PHP.
  • Use conexões com suporte a TLS/SSL entre o PHP e o SQL Server.
  • Restrinja IPs e use firewalls para proteger portas como 1433.

🧯 Solução de problemas comuns

Erro: msodbcsql18: command not found
→ Verifique se aceitou a licença com ACCEPT_EULA=Y e se o repositório foi corretamente adicionado.

Erro de extensão não carregada:
→ Verifique com php -m se sqlsrv e pdo_sqlsrv estão na lista. Reexecute phpenmod.

Erro de conexão:
→ Verifique se o SQL Server está acessível via IP e porta 1433. Também confira as credenciais e permissões do usuário SQL.

🛡️ Considerações finais

Aprender a instalar SQLSRV no Ubuntu 24.04 com PHP 8.3 é essencial para qualquer desenvolvedor ou administrador de sistemas que precisa integrar aplicações PHP com bancos Microsoft SQL Server.

Utilizar os drivers oficiais da Microsoft garante mais estabilidade, melhor desempenho e suporte técnico, sendo uma prática recomendada para ambientes de produção.

📚 Referência

Caso tenha alguma dúvida a respeito deste tópico sinta-se à vontade para entrar em contato.

Rolar para cima