Manual Instalación SQLServer Linux Ubuntu (16.04 | 18.04 | 20.04 | 22.04)
PHP-FPM (7.4 - 8.0 - 8.1)
A continuación el manual de Instalación de SQLServer en Linux Ubuntu 20.04 El manual contempla la instalación en PHP 8.1, sim embargo puede cambiarlo segun se requiera.
Documentacion Oficial Microsoft
- Install the Microsoft ODBC driver for SQL Server (Linux)
- Linux and macOS Installation Tutorial for the Microsoft Drivers for PHP for SQL Server
Instalación
PRE-REQUISITOS: Garantice tener CURL instalada en su PHP
Para validar si tiene la extensión:
dpkg -l | grep 'php8.1-curl'
De no tenerla instalada, podrá instalarla con el siguiente comando:
apt-get install php8.1-curl
Debe contar con OpenSSL instalado en su servidor Linux:
Adicional debe configurar el archivo /etc/ssl/openssl.cnf
Agregando:
# En la primera linea del archivo.
openssl_conf = openssl_init
# Al final del archivo.
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
CipherString = DEFAULT@SECLEVEL=1
#Si llega a generar problemas de SSL la conexion, cambiar a DEFAULT@SECLEVEL=0
Ahora revisaremos que nuestra version de PHP con FPM este corriendo correctamente en el servidor. Cambie la versión de PHP en los comandos por las posibles a usar con este manual (7.4 - 8.0 - 8.1)
systemctl status php8.1-fpm
Garantizando que el PHP-FPM se está ejecutando correctamente.
Ahora Instalaremos los Drivers de ODBC (Microsoft ODBC 17) necesarios para que la conexión con SQLServer sea correcta. Copie y pegue todo el bloque siguiente con permisos de Super Usuario (root), sobre la terminal que use para administrar el Servidor.
if ! [[ "16.04 18.04 20.04 22.04" == *"$(lsb_release -rs)"* ]];
then
echo "Ubuntu $(lsb_release -rs) is not currently supported.";
exit;
fi
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
Asegúrese de instalar también el unixodbc-dev
paquete. Es utilizado por el peclcomando para instalar los controladores de PHP.
Luego, instalaremos los controladores de PHP para Microsoft SQL Server (Ubuntu con PHP-FPM),
sudo pecl config-set php_ini /etc/php/8.1/fpm/php.ini
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv
Ahora verifique que sqlsrv.ini
y pdo_sqlsrv.ini
se encuentran en /etc/php/8.1/fpm/conf.d/
:
ls /etc/php/8.1/fpm/conf.d/*sqlsrv.ini
Con estos pasos el servicio deberia quedan en funcionamiento. Luego procedemos a Reiniciar el PHP y el APACHE.
service php8.1-fpm restart
systemctl restart apache2
Si despues de ejecutar los anteriores pasos, no funciona la conexión o salen las alertas de la siguiente imagen, corra los comandos del siguiente bloque:
Comandos para reparar el error:
sudo apt install php8.1-dev
sudo update-alternatives --set php /usr/bin/php8.1
sudo update-alternatives --set php-config /usr/bin/php-config8.1
sudo update-alternatives --set phpize /usr/bin/phpize8.1
sudo pecl install -f sqlsrv
sudo pecl install -f pdo_sqlsrv
sudo phpenmod -v 8.1 sqlsrv pdo_sqlsrv
Ahora volveremos a correr todos los pasos previos desde revisar que PHP esta corriendo correctamente hasta reiniciar el servidor Apache2.
¡Listo!, Ya podemos conectarnos a SQLServer desde Linux.