https://blogs.msdn.microsoft.com/sqlphp/2016/08/26/early-technical-preview-of-microsoft-drivers-4-0-3-for-php-on-linux-for-sql-server-released-2/?mkt_tok=eyJpIjoiWkRRek9EWTBabUkxWlRjeCIsInQiOiIwcm5Fa0tUUjhEandhNnBIaWlFRkJVUU8xa2ZHQ3VWdjZIU1N1a2FqWkhzY3dIY09iWW9pemdkMk95SlwvZGY0QU1XSWJGQVZVaDVkZG5MVk9acW5KcmR5VE9WeVpsQkxsWFZCTDExbDVzRHM9In0%3D
今までは、LinuxのPHPからSQL Server(Azure SQL Database)への接続はODBC経由のみでしたが、これで例えばWebAppsで動かすPHPアプリケーションをLinux上で開発することが簡単になります。
今回はUbuntu16.04 TLSへの導入までの手順を説明します。
おそらくリリース時にも大きな変更はないと思われるので、今後も参考になるかと。
以下のサイトからコンパイル済みのバイナリーをダウンロードして利用します。
https://github.com/Microsoft/msphpsql/releases/tag/v4.0.3-Linux
PHP7.0と確認用にApache2をインストールします。
# apt-get update
# apt-get -y install php7.0 php-odbc php7.0-cgi libapache2-mod-php7.0 unzip
ドライバーをダウンロードしてPHPのextension_dir(今回は/usr/lib/php/20151012)へコピーします。
# wget https://github.com/Microsoft/msphpsql/releases/download/v4.0.3-Linux/Ubuntu16.zip
# unzip Ubuntu16.zip
# cp Ubuntu16/*.so /usr/lib/php/20151012/
PHPの設定ファイルを作成して、ドライバーを読み込みます。
今回はApache2ですので「/etc/php/7.0/apache2/conf.d」以下にファイルを作成しますが、コマンドラインの場合は「/etc/php/7.0/cli/conf.d」、fpmの場合は「/etc/php/7.0/fpm/conf.d」以下に作成します。
# vi /etc/php/7.0/apache2/conf.d/20-sqlsrv.ini
extension=php_sqlsrv_7_nts.so
extension=php_pdo_sqlsrv_7_nts.so
ファイルを保存したらApache2を再起動します。
# service apache2 restart
phpinfoで確認すると、PDOの項目にsqlsrvがあります。
同様にsqlsrvの項目もあります。