Skip to content

Instantly share code, notes, and snippets.

@irineujunior
Last active August 25, 2021 13:00
Show Gist options
  • Save irineujunior/7c1fd4a4cdb12b5060fb0de3b948e838 to your computer and use it in GitHub Desktop.
Save irineujunior/7c1fd4a4cdb12b5060fb0de3b948e838 to your computer and use it in GitHub Desktop.
Install SQL Server PHP Driver on Homestead
#!/bin/sh
# | ============================================================================
# | SQL Server PHP Driver on Homestead
# | ============================================================================
# | Ubuntu LTS | Settler | Homestead
# | ============================================================================
# | 20.04 | 11.x | 12.x
# | ============================================================================
# | Copy this file to ~/code
# | Inside the box, run `cd ~ && sudo ./install-mssql.sh`
# | ============================================================================
# | Install ODBC drivers
# | ============================================================================
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
#Ubuntu 20.04
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
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
# | ============================================================================
# | Install PHP (8.0) drivers
# | ============================================================================
php80
# drivers
sudo pecl channel-update pecl.php.net
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.0/mods-available/pdo_sqlsrv.ini
sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv
/etc/init.d/php8.0-fpm restart
# | ============================================================================
# | Install PHP (7.4) drivers
# | ============================================================================
# download and extract phpmysql drivers
wget "https://github.com/microsoft/msphpsql/releases/download/v5.9.0/Ubuntu2004-7.4.tar"
# extract
tar -xf Ubuntu2004-7.4.tar --no-same-owner
# change directory
cd Ubuntu2004-7.4
# rename to default
sudo mv php_pdo_sqlsrv_74_nts.so pdo_sqlsrv.so
sudo mv php_sqlsrv_74_nts.so sqlsrv.so
# move files
sudo mv pdo_sqlsrv.so /usr/lib/php/20190902
sudo mv sqlsrv.so /usr/lib/php/20190902
# change owner/group
sudo chown root:root /usr/lib/php/20190902/pdo_sqlsrv.so
sudo chown root:root /usr/lib/php/20190902/sqlsrv.so
# modify permissions
sudo chmod 644 /usr/lib/php/20190902/pdo_sqlsrv.so
sudo chmod 644 /usr/lib/php/20190902/sqlsrv.so
# cleanup
cd .. && rm -rf Ubuntu2004-7.4 && rm Ubuntu2004-7.4.tar
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini
sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv
/etc/init.d/php7.4-fpm restart
# | ============================================================================
# | Install PHP (7.3) drivers
# | ============================================================================
# download and extract phpmysql drivers
wget "https://github.com/microsoft/msphpsql/releases/download/v5.9.0/Ubuntu2004-7.3.tar"
# extract
tar -xf Ubuntu2004-7.3.tar --no-same-owner
# change Directory
cd Ubuntu2004-7.3
# rename to default
sudo mv php_pdo_sqlsrv_73_nts.so pdo_sqlsrv.so
sudo mv php_sqlsrv_73_nts.so sqlsrv.so
# move files
sudo mv pdo_sqlsrv.so /usr/lib/php/20180731
sudo mv sqlsrv.so /usr/lib/php/20180731
# change owner/group
sudo chown root:root /usr/lib/php/20180731/pdo_sqlsrv.so
sudo chown root:root /usr/lib/php/20180731/sqlsrv.so
# modify permissions
sudo chmod 644 /usr/lib/php/20180731/pdo_sqlsrv.so
sudo chmod 644 /usr/lib/php/20180731/sqlsrv.so
# cleanup
cd .. && rm -rf Ubuntu2004-7.3 && rm Ubuntu2004-7.3.tar
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.3/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.3/mods-available/pdo_sqlsrv.ini
sudo phpenmod -v 7.3 sqlsrv pdo_sqlsrv
/etc/init.d/php7.3-fpm restart
# | ============================================================================
# | Install PHP (7.2) drivers
# | ============================================================================
# download and extract phpmysql drivers
wget "https://github.com/microsoft/msphpsql/releases/download/v5.6.1/Ubuntu1810-7.2.tar"
# extract
tar -xf Ubuntu1810-7.2.tar --no-same-owner
# change directory
cd Ubuntu1810-7.2
# rename to default
sudo mv php_pdo_sqlsrv_72_nts.so pdo_sqlsrv.so
sudo mv php_sqlsrv_72_nts.so sqlsrv.so
# move files
sudo mv pdo_sqlsrv.so /usr/lib/php/20170718
sudo mv sqlsrv.so /usr/lib/php/20170718
# change owner/group
sudo chown root:root /usr/lib/php/20170718/pdo_sqlsrv.so
sudo chown root:root /usr/lib/php/20170718/sqlsrv.so
# modify permissions
sudo chmod 644 /usr/lib/php/20170718/pdo_sqlsrv.so
sudo chmod 644 /usr/lib/php/20170718/sqlsrv.so
# cleanup
cd .. && sudo rm -rf Ubuntu1810-7.2 && rm Ubuntu1810-7.2.tar
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.2/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.2/mods-available/pdo_sqlsrv.ini
sudo phpenmod -v 7.2 sqlsrv pdo_sqlsrv
/etc/init.d/php7.2-fpm restart
# | ============================================================================
# | Install PHP (7.1) drivers
# | ============================================================================
# download and extract phpmysql drivers
wget "https://github.com/microsoft/msphpsql/releases/download/v5.6.1/Ubuntu1810-7.1.tar"
# extract
tar -xf Ubuntu1810-7.1.tar --no-same-owner
# change directory
cd Ubuntu1810-7.1
# rename to default
sudo mv php_pdo_sqlsrv_71_nts.so pdo_sqlsrv.so
sudo mv php_sqlsrv_71_nts.so sqlsrv.so
# move files
sudo mv pdo_sqlsrv.so /usr/lib/php/20160303
sudo mv sqlsrv.so /usr/lib/php/20160303
# change owner/group
sudo chown root:root /usr/lib/php/20160303/pdo_sqlsrv.so
sudo chown root:root /usr/lib/php/20160303/sqlsrv.so
# modify permissions
sudo chmod 644 /usr/lib/php/20160303/pdo_sqlsrv.so
sudo chmod 644 /usr/lib/php/20160303/sqlsrv.so
# cleanup
cd .. && sudo rm -rf Ubuntu1810-7.1 && rm Ubuntu1810-7.1.tar
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.1/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.1/mods-available/pdo_sqlsrv.ini
sudo phpenmod -v 7.1 sqlsrv pdo_sqlsrv
/etc/init.d/php7.1-fpm restart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment