CentOS 7のPHP 7.2からMicrosoft SQL Serverに接続する方法

PHP IT

Linux上のPHPから接続するデータベースといえば、MySQLやPostgreSQLが多いですけど、まれに、Microsoft SQL Serverに接続したいという要望があるかもしれないので自分メモ。

CentOS 7のPHP 7.2からMicrosoft SQL Serverに接続する方法

簡単でした。

ODBC Driver for SQL Serverのインストール

Microsoft謹製のLinux用の「ODBC Driver for SQL Server(msodbcsql)」というものを使います。
こちらからダウンロードできます。

ODBC Driver for SQL Server のダウンロード - ODBC Driver for SQL Server
SQL Server や Azure SQL Database に接続するネイティブ コード アプリケーションを開発するには、Microsoft ODBC Driver for SQL Server をダウンロードします。

OSはCentOS 7なので、「Red Hat 7 .rpm パッケージ」が使える(はず)。

msodbcsql-13」の最新バージョンをダウンロードしてインストール

「msodbcsql17」というのがありますが、こちらは使えません。
「msodbcsql-13」の最新バージョンをダウンロードしてインストールします。(この場合は「msodbcsql-13.1.9.2-1.x86_64.rpm」)

$ sudo yum localinstall https://packages.microsoft.com/rhel/7/prod/msodbcsql-13.1.9.2-1.x86_64.rpm

PHP 7.2のインストール

remiリポジトリをインストールして、そちらからPHP 7.2をインストールします。

$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

remiリポジトリからPHP 7.2をインストールします。SQL Serverに接続するためのパッケージである「php-sqlsrv」もインストールします。

$ sudo yum install --enablerepo=remi,remi-php72 php php-common php-cli php-mbstring php-gd php-pear php-pdo php-mcrypt php-xmlrpc php-soap php-devel php-intl php-xml php-sqlsrv

DSNの書き方

PDOを使ってPHPからSQL Serverに接続するためのDSNの書き方はPHPのマニュアルのページに載っていました。

PHP: PDO_SQLSRV DSN - Manual
<?php
  $host = "192.168.0.10";
  $dbname = "testdb";
  $user = "sa";
  $pass = "sa";
  
  $conn = new PDO("sqlsrv:Server=$host;Database=$dbname", $user, $pass);
この記事を書いた人

余分なこだわりは捨てる。それがぼくのスタイル。

PHPでWebアプリを作り、小さな花の写真を撮ってよろこんでいる人。元Webエンジニア。プログラミング講師。余分なこだわりを捨てて生きやすくなりたいと思いつつも、なかなかこだわりを捨てきれない頑固者。まろと呼んでください。

さかのうえの まろをフォローする
IT
シェアする