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
Install ODBC Driver (https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15)
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
# 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
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"