Skip to content

Instantly share code, notes, and snippets.

@Mxrck
Created January 16, 2020 18:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mxrck/3665387aa8c48aedef5189a2294c3a43 to your computer and use it in GitHub Desktop.
Save Mxrck/3665387aa8c48aedef5189a2294c3a43 to your computer and use it in GitHub Desktop.
Instalación de drivers SQL Server para PHP (Laravel Homestead)
#!/bin/bash
# Verificando usurio que correo el script
if [[ $(id -u) -ne 0 ]] ; then echo "Se necesita ejecutar como root" ; exit 1 ; fi
# Inicializando variables
VERSION_OS=`lsb_release -rs`
# Revisando versión del sistema
echo "Verificando versión del sistema"
# Por el momento solo me interesa darle soporte a la versión actual de Homestead (2020/01/14 con Ubuntu 18.04)
if [[ $VERSION_OS != "18.04" ]]
then
echo "Este script solo es compatible con 18.04, estás usando $VERSION_OS";
exit 1;
fi
# Listando directorios de extensiones
PHP71=`php7.1 --version | head -n 1 | cut -d " " -f 2 | cut -c 1,3`
PHP72=`php7.2 --version | head -n 1 | cut -d " " -f 2 | cut -c 1,3`
PHP73=`php7.3 --version | head -n 1 | cut -d " " -f 2 | cut -c 1,3`
PHP74=`php7.4 --version | head -n 1 | cut -d " " -f 2 | cut -c 1,3`
PHP71_EXTENSIONS_DIR=""
PHP72_EXTENSIONS_DIR=""
PHP73_EXTENSIONS_DIR=""
PHP74_EXTENSIONS_DIR=""
PHP71_CONFIG_DIR=""
PHP72_CONFIG_DIR=""
PHP73_CONFIG_DIR=""
PHP74_CONFIG_DIR=""
PHP71_UBUNTU1804_EXTENSION="https://github.com/microsoft/msphpsql/releases/download/v5.6.1/Ubuntu18-7.1.tar"
PHP72_UBUNTU1804_EXTENSION="https://github.com/microsoft/msphpsql/releases/download/v5.7.1-preview/Ubuntu1804-7.2.tar"
PHP73_UBUNTU1804_EXTENSION="https://github.com/microsoft/msphpsql/releases/download/v5.7.1-preview/Ubuntu1804-7.3.tar"
PHP74_UBUNTU1804_EXTENSION="https://github.com/microsoft/msphpsql/releases/download/v5.7.1-preview/Ubuntu1804-7.4.tar"
if [[ $PHP71 == "71" ]]
then
PHP71_EXTENSIONS_DIR=`php-config7.1 --extension-dir`
PHP71_CONFIG_DIR="/etc/php/7.1/"
fi
if [[ $PHP72 == "72" ]]
then
PHP72_EXTENSIONS_DIR=`php-config7.2 --extension-dir`
PHP72_CONFIG_DIR="/etc/php/7.2/"
fi
if [[ $PHP73 == "73" ]]
then
PHP73_EXTENSIONS_DIR=`php-config7.3 --extension-dir`
PHP73_CONFIG_DIR="/etc/php/7.3/"
fi
if [[ $PHP74 == "74" ]]
then
PHP74_EXTENSIONS_DIR=`php-config7.4 --extension-dir`
PHP74_CONFIG_DIR="/etc/php/7.4/"
fi
# Instalando CURL (necesario para los comandos de Microsoft)
echo "Instalando CURL|Wget"
{
apt -y install curl wget
} > /dev/null 2>&1
echo "Añadiendo Key de Microsoft"
# Añadiendo KEY
{
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
} > /dev/null 2>&1
echo "Instalando repositorio de mssql"
{
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
} > /dev/null 2>&1
# Actualizando lista de paquetes
echo "Actualizando paquetes"
{
apt update
} > /dev/null 2>&1
# Instalando herramientas de microsoft
echo "Instalando paquetes finales de Microsoft"
{
ACCEPT_EULA=Y apt -y install msodbcsql17
ACCEPT_EULA=Y apt -y install mssql-tools
} > /dev/null 2>&1
# Descargando drivers
echo "Descargando y configurando drivers para php"
if [[ $PHP71_EXTENSIONS_DIR != "" ]]
then
echo "Instalando en $PHP71_EXTENSIONS_DIR los archivos $PHP71_UBUNTU1804_EXTENSION"
wget -qO- $PHP71_UBUNTU1804_EXTENSION | tar x -C $PHP71_EXTENSIONS_DIR --strip 1
CONFIG_CLI_DIR="${PHP71_CONFIG_DIR}cli/conf.d/20-sqlsrv.ini"
CONFIG_FPM_DIR="${PHP71_CONFIG_DIR}fpm/conf.d/20-sqlsrv.ini"
echo "extension=php_pdo_sqlsrv_71_nts.so" > $CONFIG_CLI_DIR
echo "extension=php_sqlsrv_71_nts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_pdo_sqlsrv_71_ts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_sqlsrv_71_ts.so" >> $CONFIG_CLI_DIR
echo "extension=php_pdo_sqlsrv_71_nts.so" > $CONFIG_FPM_DIR
echo "extension=php_sqlsrv_71_nts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_pdo_sqlsrv_71_ts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_sqlsrv_71_ts.so" >> $CONFIG_FPM_DIR
service php7.1-fpm restart
fi
if [[ $PHP72_EXTENSIONS_DIR != "" ]]
then
echo "Instalando en $PHP72_EXTENSIONS_DIR los archivos $PHP72_UBUNTU1804_EXTENSION"
wget -qO- $PHP72_UBUNTU1804_EXTENSION | tar x -C $PHP72_EXTENSIONS_DIR --strip 1
CONFIG_CLI_DIR="${PHP72_CONFIG_DIR}cli/conf.d/20-sqlsrv.ini"
CONFIG_FPM_DIR="${PHP72_CONFIG_DIR}fpm/conf.d/20-sqlsrv.ini"
echo "extension=php_pdo_sqlsrv_72_nts.so" > $CONFIG_CLI_DIR
echo "extension=php_sqlsrv_72_nts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_pdo_sqlsrv_72_ts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_sqlsrv_72_ts.so" >> $CONFIG_CLI_DIR
echo "extension=php_pdo_sqlsrv_72_nts.so" > $CONFIG_FPM_DIR
echo "extension=php_sqlsrv_72_nts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_pdo_sqlsrv_72_ts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_sqlsrv_72_ts.so" >> $CONFIG_FPM_DIR
service php7.2-fpm restart
fi
if [[ $PHP73_EXTENSIONS_DIR != "" ]]
then
echo "Instalando en $PHP73_EXTENSIONS_DIR los archivos $PHP73_UBUNTU1804_EXTENSION"
wget -qO- $PHP73_UBUNTU1804_EXTENSION | tar x -C $PHP73_EXTENSIONS_DIR --strip 1
CONFIG_CLI_DIR="${PHP73_CONFIG_DIR}cli/conf.d/20-sqlsrv.ini"
CONFIG_FPM_DIR="${PHP73_CONFIG_DIR}fpm/conf.d/20-sqlsrv.ini"
echo "extension=php_pdo_sqlsrv_73_nts.so" > $CONFIG_CLI_DIR
echo "extension=php_sqlsrv_73_nts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_pdo_sqlsrv_73_ts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_sqlsrv_73_ts.so" >> $CONFIG_CLI_DIR
echo "extension=php_pdo_sqlsrv_73_nts.so" > $CONFIG_FPM_DIR
echo "extension=php_sqlsrv_73_nts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_pdo_sqlsrv_73_ts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_sqlsrv_73_ts.so" >> $CONFIG_FPM_DIR
service php7.3-fpm restart
fi
if [[ $PHP74_EXTENSIONS_DIR != "" ]]
then
echo "Instalando en $PHP74_EXTENSIONS_DIR los archivos $PHP74_UBUNTU1804_EXTENSION"
wget -qO- $PHP74_UBUNTU1804_EXTENSION | tar x -C $PHP74_EXTENSIONS_DIR --strip 1
CONFIG_CLI_DIR="${PHP74_CONFIG_DIR}cli/conf.d/20-sqlsrv.ini"
CONFIG_FPM_DIR="${PHP74_CONFIG_DIR}fpm/conf.d/20-sqlsrv.ini"
echo "extension=php_pdo_sqlsrv_74_nts.so" > $CONFIG_CLI_DIR
echo "extension=php_sqlsrv_74_nts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_pdo_sqlsrv_74_ts.so" >> $CONFIG_CLI_DIR
echo "#extension=php_sqlsrv_74_ts.so" >> $CONFIG_CLI_DIR
echo "extension=php_pdo_sqlsrv_74_nts.so" > $CONFIG_FPM_DIR
echo "extension=php_sqlsrv_74_nts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_pdo_sqlsrv_74_ts.so" >> $CONFIG_FPM_DIR
echo "#extension=php_sqlsrv_74_ts.so" >> $CONFIG_FPM_DIR
service php7.4-fpm restart
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment