Si estás desarrollando aplicaciones con PHP y CodeIgniter 4 en Linux Mint y necesitas conectarte a Microsoft SQL Server, es posible que te encuentres con errores como:
- ❌ Unable to connect to the database
- ❌ Undefined constant “CodeIgniter\Database\SQLSRV\SQLSRV_ENC_CHAR”
La buena noticia es que la solución es sencilla una vez que se instalan correctamente los controladores de Microsoft y las extensiones de PHP. En esta guía te explicamos paso a paso cómo hacerlo. 👨💻
📋 Requisitos Previos
- ✅ Linux Mint 22.1 (Xia)
- ✅ PHP 8.3 instalado
- ✅ Acceso a terminal con permisos de administrador
- ✅ Conexión a Internet
🔍 Verificar la Versión de PHP
Primero, verifica la versión de PHP instalada:
php -v📦 Instalar Dependencias Necesarias
Instala las herramientas necesarias para compilar las extensiones:
sudo apt update sudo apt install -y php8.3-dev php-pear build-essential unixodbc-dev🛠️ Agregar el Repositorio de Microsoft
Importa la clave de Microsoft:
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | \ sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpgAgrega el repositorio:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/ubuntu/24.04/prod noble main" | sudo tee /etc/apt/sources.list.d/mssql-release.listActualiza los repositorios:
sudo apt update💾 Instalar el Driver ODBC de SQL Server
Instala el controlador oficial de Microsoft:
sudo ACCEPT_EULA=Y apt install -y msodbcsql18Verifica que el paquete esté disponible:
apt search msodbcsql⚙️ Instalar las Extensiones SQLSRV y PDO_SQLSRV
Instala las extensiones PHP utilizando PECL:
sudo pecl install sqlsrv sudo pecl install pdo_sqlsrv🔧 Activar las Extensiones
Crea los archivos de configuración:
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.iniActiva las extensiones:
sudo phpenmod sqlsrv sudo phpenmod pdo_sqlsrv🔄 Reiniciar Apache
Si utilizas Apache, reinícialo:
sudo systemctl restart apache2✅ Verificar la Instalación
Comprueba que PHP cargó correctamente las extensiones:
php -m | grep sqlsrvLa salida correcta será:
pdo_sqlsrv sqlsrvTambién puedes verificar la constante utilizada por CodeIgniter:
php -r "var_dump(defined('SQLSRV_ENC_CHAR'));"Resultado esperado:
bool(true)🎯 Configuración en CodeIgniter 4
Una vez instaladas las extensiones, puedes configurar la conexión de esta forma:
$config = [ 'DBDriver' => 'SQLSRV', 'hostname' => 'servidor', 'database' => 'base_de_datos', 'username' => 'usuario', 'password' => 'contraseña', 'port' => 1433, ];🚨 Errores Comunes
❌ Undefined constant SQLSRV_ENC_CHAR
Este error ocurre cuando la extensión sqlsrv no está instalada o no se encuentra cargada en PHP.
❌ Unable to load dynamic library ‘sqlsrv.so’
Indica que PHP intenta cargar el módulo, pero el archivo sqlsrv.so no existe o no fue instalado correctamente.
❌ Error SSL Provider o Certificate
Con ODBC Driver 18 algunos servidores requieren configuración adicional de certificados o habilitar la confianza del certificado del servidor.
🎉 Conclusión
Instalar SQL Server en Linux Mint para PHP y CodeIgniter puede parecer complicado al principio, pero siguiendo estos pasos podrás conectar tu aplicación sin problemas.
Una vez instaladas las extensiones sqlsrv y pdo_sqlsrv, CodeIgniter podrá comunicarse con Microsoft SQL Server de forma nativa y eficiente.
💡 Si trabajas con aplicaciones empresariales, ERPs o sistemas administrativos, esta configuración te permitirá integrar fácilmente bases de datos SQL Server desde entornos Linux.
🚀 ¡Ahora ya estás listo para desarrollar con PHP, CodeIgniter y SQL Server en Linux Mint!
Deja un comentario