はじめに
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
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
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
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
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
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
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のバージョンに追随してバージョンアップされています。あることぐらいは覚えておくとよいと思い思います。