php-mongodb-mssql-extensions / LINUX-MSSQL-BUILD.md
rzhugging's picture
Add PHP MongoDB & MSSQL extension binaries (Windows DLL + Linux .so) for PHP 7.4-8.3
416e1ba verified
|
Raw
History Blame Contribute Delete
1.97 kB

Building sqlsrv & pdo_sqlsrv (.so) on Linux

Microsoft ships the MSSQL PHP drivers as source through PECL, so the .so must be compiled against your exact PHP version. This is fast and repeatable. Example for Debian/Ubuntu, x64.

1. Install the Microsoft ODBC driver (runtime dependency)

# Debian/Ubuntu
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/debian/12/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 unixodbc-dev

2. Install PHP build tooling

# replace 8.3 with your PHP minor version
sudo apt-get install -y php8.3-dev php-pear gcc g++ make

3. Build the extensions with PECL

# For PHP 8.1+ the latest 5.13.x works; for PHP 7.4/8.0 pin 5.10.1:
sudo pecl install sqlsrv pdo_sqlsrv
# or a pinned version:
#   sudo pecl install sqlsrv-5.10.1 pdo_sqlsrv-5.10.1   # PHP 7.4 / 8.0
#   sudo pecl install sqlsrv-5.12.0 pdo_sqlsrv-5.12.0   # PHP 8.1 / 8.2
#   sudo pecl install sqlsrv-5.13.3 pdo_sqlsrv-5.13.3   # PHP 8.3

The compiled sqlsrv.so and pdo_sqlsrv.so land in your extension_dir (php-config --extension-dir).

4. Enable them

echo "extension=sqlsrv.so"     | sudo tee /etc/php/8.3/mods-available/sqlsrv.ini
echo "extension=pdo_sqlsrv.so" | sudo tee /etc/php/8.3/mods-available/pdo_sqlsrv.ini
sudo phpenmod sqlsrv pdo_sqlsrv
php -m | grep -i sqlsrv

Version compatibility (msphpsql)

Driver version Supported PHP
5.10.x 7.4 – 8.1
5.11.x 8.0 – 8.2
5.12.x 8.1 – 8.3
5.13.x 8.1 – 8.4

Alpine Linux (musl)

apk add --no-cache unixodbc-dev php83-dev php83-pear gcc g++ make
# plus the msodbcsql18 musl package from Microsoft
pecl install sqlsrv pdo_sqlsrv