Articles

How to Install the PHP SQLSRV Extension

To install a PECL extension for multiple PHP versions, repeat the PECL extension installation for each PHP version.

The SQLSRV extension provides functions for accessing Microsoft SQL Server databases.

In late 2016, after more than four years of this extension not being updated, Microsoft began releasing updates to greatly improve this extension and add support for PHP 7. As of early 2017, this extension is now considered stable again.

This extension now only supports PHP 7. Additionally, the only Ubuntu LTS version this extension supports is Ubuntu 16.04. You will not be able to use this extension on Ubuntu 12.04 or 14.04.

You can follow Microsoft's work on this extension through the PHP SQL Server Team blog.

Installing the SQLSRV Extension on PHP 7.X

In the examples shown, replace "7.X" with your app's PHP version (for example, "7.0").

To install the PHP SQLSRV extension on PHP 7.0, PHP 7.1, or PHP 7.2, SSH in to your server as root and run the following commands to install prerequisites:

curl -s https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo bash -c "curl -s https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list"
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get -y install msodbcsql mssql-tools
sudo apt-get -y install unixodbc-dev

Next, run the following commands to install the extension:

sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config
sudo pecl7.X-sp install sqlsrv
sudo pecl7.X-sp install pdo_sqlsrv

Once installed, create configuration files for the extension and restart PHP by running the following commands as root:

sudo bash -c "echo extension=sqlsrv.so > /etc/php7.X-sp/conf.d/sqlsrv.ini"
sudo bash -c "echo extension=pdo_sqlsrv.so > /etc/php7.X-sp/conf.d/pdo_sqlsrv.ini"
sudo service php7.X-fpm-sp restart

Possible Errors

If you get the following error while installing prerequisites using the instructions above:

Installation Failed, ODBC Driver 13 for SQL Server Detected!

this may be caused by a previous installation of Microsoft's msodbcsql package while the new SQLSRV driver was still in development and not yet released. In this case, the solution is to start over with a clean Ubuntu 16.04 server, connect it to ServerPilot, and follow the PHP SQLSRV extension installation steps again on the new server.

Installing the SQLSRV Extension on PHP 5.X

This extension no longer supports PHP 5.X.

Verifying the Installation

You can verify the SQLSRV extension is installed with the command:

php7.X-sp -i | grep -i sqlsrv

If SQLSRV is installed correctly, you will see the following:

/etc/php7.1-sp/conf.d/pdo_sqlsrv.ini,
/etc/php7.1-sp/conf.d/sqlsrv.ini,
Registered PHP Streams => https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, zip, phar, sqlsrv
PDO drivers => dblib, mysql, odbc, pgsql, sqlite, sqlsrv
pdo_sqlsrv
pdo_sqlsrv support => enabled
pdo_sqlsrv.client_buffer_max_kb_size => 10240 => 10240
pdo_sqlsrv.log_severity => 0 => 0
sqlsrv
sqlsrv support => enabled
sqlsrv.ClientBufferMaxKBSize => 10240 => 10240
sqlsrv.LogSeverity => 0 => 0
sqlsrv.LogSubsystems => 0 => 0
sqlsrv.WarningsReturnAsErrors => On => On

Using the PHP SQLSRV Extension

See the extension's GitHub page for an example of how to use the extension.

Note that the MSDN Online Documentation for this extension has not yet been updated for PHP 7.


Last updated: August 31, 2017