Skip to content

Instantly share code, notes, and snippets.

@PeWe79
Last active July 22, 2024 16:05
Show Gist options
  • Save PeWe79/402c4902fc0126bec46ffcc3507adbd5 to your computer and use it in GitHub Desktop.
Save PeWe79/402c4902fc0126bec46ffcc3507adbd5 to your computer and use it in GitHub Desktop.
Install Microsoft SQL Server PHP Driver on Ubuntu

Install Microsoft Drivers PHP SQL Server

Step 1: Install PHP && libraries

Referensi Utama disini: https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15

sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config

# Untuk PHP versi 7.0 - 7.2 !!
# Perintah pecl membutuhkan package php-pear
sudo apt-get install php-dev php-pear

# Jika tampil phpize tidak ada, jalankan cmd berikut (sesuai versi):
# sudo apt-get install php-dev
# sudo apt-get install php7.0-dev
# sudo apt-get install php7.2-dev

# PHP Versi 8.0 
sudo add-apt-repository ppa:ondrej/php -y
sudo apt-get update
sudo apt-get install php8.0 php8.0-dev php8.0-xml -y --allow-unauthenticated

# PHP Versi 8.1
sudo add-apt-repository ppa:ondrej/php -y
sudo apt-get update
sudo apt-get install php8.1 php8.1-dev php8.1-xml -y --allow-unauthenticated

Step 2. Install prerequisites

curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

Download sesuai dengan versi OS yg digunakan ( detail ada di https://packages.microsoft.com/config/ubuntu/ )

# Ubuntu 20.04
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list

# Ubuntu 20.10
curl https://packages.microsoft.com/config/ubuntu/20.10/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list

# Ubuntu 22.04
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /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

Step 3. Install PHP drivers Microsoft SQL Server

# https://pecl.php.net/package/sqlsrv
# For PHP 7.0
sudo pecl install sqlsrv-5.3.0
sudo pecl install pdo_sqlsrv-5.3.0

# For PHP 7.1 ( dapat dicoba juga sqlsrv-5.7.0preview )
sudo pecl install sqlsrv-5.6.1
sudo pecl install pdo_sqlsrv-5.6.1

# PHP 7.4
sudo pecl install sqlsrv-5.10.1
sudo pecl install pdo_sqlsrv-5.10.1

# PHP 8.0
sudo pecl install sqlsrv-5.11.1
sudo pecl install pdo_sqlsrv-5.11.1

# PHP 8.1 dan diatasnya
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

# Add this line (library) to php.ini
# extension=sqlsrv.so
sudo su

# PHP 7.0
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.0/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.0/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 7.0 sqlsrv pdo_sqlsrv

# PHP 7.1
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
exit
sudo phpenmod -v 7.1 sqlsrv pdo_sqlsrv

# PHP 7.4
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
exit
sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv

# PHP 8.0
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
exit
sudo phpenmod -v 8.0 sqlsrv pdo_sqlsrv

# PHP 8.1 dan diatasnya
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

Step 4. Install Apache dan configurasi driver

sudo su
apt-get install libapache2-mod-php8.1 apache2
a2dismod mpm_event
a2enmod mpm_prefork
# Set Versi PHP
a2enmod phpx.x
exit

# reoad/restart apache
sudo systemctl reload apache2
# Jika menggunakan PHP-FPM ( Nginx )
sudo service php7.2-fpm reload # Ubuntu
sudo systemctl restart php-fpm # CentOS

# Verification
odbcinst -q -d -n "ODBC Driver 17 for SQL Server"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment