Skip to content

Instantly share code, notes, and snippets.

@ethanclevenger91
Last active May 24, 2024 15:24
Show Gist options
  • Save ethanclevenger91/8134ef434ec92d3d829be0b6beb714d9 to your computer and use it in GitHub Desktop.
Save ethanclevenger91/8134ef434ec92d3d829be0b6beb714d9 to your computer and use it in GitHub Desktop.
Install PHP SQLSRV database extension on Laravel Homestead (probably works as a Laravel Forge recipe, too). Thanks @richvida
#!/bin/sh
PHP_MSSQL_DRIVERS=Ubuntu18-7.3
PHP_MSSQL_RELEASE=5.6.1
# Download and extract phpmysql drivers
sudo wget "https://github.com/Microsoft/msphpsql/releases/download/v${PHP_MSSQL_RELEASE}/${PHP_MSSQL_DRIVERS}.tar" -O - | tar -x
# Change Directory
cd $PHP_MSSQL_DRIVERS
# Change owner/group
sudo chown root:root php_pdo_sqlsrv_73_nts.so
sudo chown root:root php_sqlsrv_73_nts.so
# Modify permissions
sudo chmod 644 php_pdo_sqlsrv_73_nts.so
sudo chmod 644 php_sqlsrv_73_nts.so
# Move files
sudo mv php_pdo_sqlsrv_73_nts.so /usr/lib/php/20170718
sudo mv php_sqlsrv_73_nts.so /usr/lib/php/20170718
# Cleanup
cd .. && sudo rm -rf $PHP_MSSQL_DRIVERS
# Create new .ini file
sudo touch /etc/php/7.3/mods-available/pdo_sqlsrv.ini
echo "extension=php_pdo_sqlsrv_73_nts.so" | sudo tee -a /etc/php/7.3/mods-available/pdo_sqlsrv.ini > /dev/null
# Create Symlinks
sudo ln -sfn /etc/php/7.3/mods-available/pdo_sqlsrv.ini /etc/php/7.3/cli/conf.d/20-pdo_sqlsrv.ini
sudo ln -sfn /etc/php/7.3/mods-available/pdo_sqlsrv.ini /etc/php/7.3/fpm/conf.d/20-pdo_sqlsrv.ini
# Enable PHP extension
echo "extension=php_sqlsrv_73_nts.so" | sudo tee -a /etc/php/7.3/cli/php.ini > /dev/null
echo "extension=php_sqlsrv_73_nts.so" | sudo tee -a /etc/php/7.3/fpm/php.ini > /dev/null
# Install Microsoft ODBC Driver 17 for SQL Server requirements
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo sh -c 'curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list'
# Update package lists
sudo apt-get update
# Install Microsoft ODBC Driver
yes Y | sudo ACCEPT_EULA=Y apt-get install msodbcsql17
# Restart services
sudo service php7.3-fpm restart
sudo service nginx restart
@JessTwiss
Copy link

This thread is a lifesaver 🫶

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment