Linux

仮想マシンのLinux ( Ubunutu ) にMicrosoft Drivers for PHP for SQL Serverをインストールする

はじめに

PHPでSQL Serverを利用したい人は一定数はいます。利用する目的は様々ですが、基本的にはMicrosoftからドライバが配布されているのでこれを使用します。

私の場合にはAzureの仮想マシンでnginxをインストールしPHPからSQL Serverを利用したかったためです。

Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn
Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn

In these instructions, learn how to install the Microsoft Drivers for PHP for SQL Server on Linux or ...

learn.microsoft.com

今回はインストールの対象としてUbuntu 20.04にインストールされたPHP7.4を対象にしています。

PHPのバージョンは読み替えてください。

インストールには以下の手順で行っていきます。

  • Install the Microsoft ODBC driver for SQL Server (Linux)
Install the Microsoft ODBC driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn
Install the Microsoft ODBC driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn

Learn how to install the Microsoft ODBC Driver for SQL Server on Linux clients to enable database co ...

learn.microsoft.com

  • Linux and macOS Installation Tutorial for the Microsoft Drivers for PHP for SQL Server
Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn
Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn

In these instructions, learn how to install the Microsoft Drivers for PHP for SQL Server on Linux or ...

learn.microsoft.com

手順にそってインストールしていきます。

Install the Microsoft ODBC driver for SQL Server (Linux)

最初にMicrosoft ODBC driver for SQL Serverをインストールする必要があります。

Install the Microsoft ODBC driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn
Install the Microsoft ODBC driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn

Learn how to install the Microsoft ODBC Driver for SQL Server on Linux clients to enable database co ...

learn.microsoft.com

基本的にはドキュメント通りで問題ないですが、Azureの仮想マシンではスクリプトが動作しません。

そこで手動でインストールしてきます。

Ubuntuのバージョンを確認しています。

if ! [[ "18.04 20.04 22.04" == *"$(lsb_release -rs)"* ]];
then
    echo "Ubuntu $(lsb_release -rs) is not currently supported.";
    exit;
fi

Microsoft ODBC driverのレポジトリを追加しています。

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list

msodbcsql18、mssql-tools18をインストールしてPATHを通します。

sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc

unixodbc-devをインストールします。

sudo apt-get install -y unixodbc-dev

以上でODBCのインストールは完了です。

Microsoft Drivers for PHP for SQL Server

PHP用のドライバーをインストールします。

Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn
Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn

In these instructions, learn how to install the Microsoft Drivers for PHP for SQL Server on Linux or ...

learn.microsoft.com

特にバージョンは指定しません。Ubuntu 20.04ではPHP7.4がインストールされます。

sudo apt-get update
sudo apt-get install php php-dev php-fpm php-xml -y

peclをインストールします。

sudo apt-get install php-pear

sqlsrv、pdo_sqlsrvをインストールします。利用する方をインストールします。

sudo pecl config-set php_ini /etc/php/7.4/fpm/php.ini
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv

読み込むための設定をします。

sudo printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini
sudo printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini

モジュールをebaleします。

sudo phpenmod sqlsrv pdo_sqlsrv

それぞれiniが作成されていることを確認します。

ll /etc/php/7.4/fpm/conf.d/
20-sqlsrv.ini -> /etc/php/7.4/mods-available/sqlsrv.ini
30-pdo_sqlsrv.ini -> /etc/php/7.4/mods-available/pdo_sqlsrv.ini

fpmを再起動します。

systemctl restart php7.4-fpm

 

接続確認

接続確認をします。

確認には用意されている接続スクリプトを利用します。

Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn
Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn

In these instructions, learn how to install the Microsoft Drivers for PHP for SQL Server on Linux or ...

learn.microsoft.com

サーバー名やユーザ名、パスワードなど必要事項を入力して実行しまうす。

php script.php

成功結果(Azure SQL Serverに接続)

<h1> Success Results : </h1>

Microsoft SQL Azure (RTM) - 12.0.2000.8
        Oct 18 2022 13:24:45
        Copyright (C) 2022 Microsoft Corporation

以上でインストール、接続確認は完了です。

まとめ

PHPでSQL Serverを利用するケースはほとんどないと思いますが一応PHPやLinuxのバージョンに追随してバージョンアップされています。あることぐらいは覚えておくとよいと思い思います。

-Linux
-