MS SQL Server 2008 で ダイナミックパブリッシング を利用する
MS SQL Server 2008(以下 SQL Server 2008)でダイナミックパブリッシングを利用する場合、PHPが対応していないため、文字コードをUTF-8ではなく、Shift_JISにする必要があります。現状、Movable Type ではUTF-8のみをサポート対象としているため、本ドキュメントの内容はサポート対象外となる点にご注意ください。
- SQL Server 2008 インストール時の注意事項
- PHP で SQL Server を利用できるように設定
- SQL Server 2008 認証方式の変更
- SQL Server 2008 データベースの作成
- 新規ユーザーの作成
- データベースへの接続テスト
- mt-wizard.cgi でのデータベース設定
SQL Server 2008 インストール時の注意事項
Movable Type Advanced(以下 MTA)のダイナミック・パブリッシング機能を利用すると、コンテンツのHTMLを事前に作成する代わりに、ウェブサイトへのアクセスがあった時点で、動的にページを出力してコンテンツを表示します。
マイクロソフト、および自社の IT 管理部門などが提供する手続きに則って、データベースをセットアップしてください。 MTA は、インストール時に自動で必要なDBテーブルなどを作成します。
MTA のインストールを開始する前に、データベースに関する以下の情報を確認してください。
- データベース名
- データベース・ユーザー名
- パスワード
- DB サーバのホスト名 (localhost, サーバ名, あるいはサーバの IP アドレス)
- SQL サーバの文字コード (UTF-8 あるいは Shift_JIS) [*1]
- ポート番号 (標準では 1433)
SQL サーバの文字コードは UTF-8 をサポートするようになりましたが。以下の問題が確認されています。
- PHP が対応していないため、ダイナミックパブリッシングを行う場合はShift_JISで作成する必要があります。
- Shift_JISでのデータベース設定は [mt-wizard.cgi] が出力する設定を参考にして下さい。
SQL Server が Windows認証 (Windows integrated authentication) を利用するように設定されている場合 (推奨)、データベースへアクセスするためのユーザー名と、パスワードは必要ありません。SQL Server において、Windows認証とSQL Server認証の統合認証(Mixed Authentication mode) を用いた認証が行われている場合 DBUser, DBpassword の設定が必要となります。ここではSQL Server認証(ID, PASSWORD 有り)を利用する事を前提とした解説を行います。
また、以下の CPAN モジュールのインストールが必要です。
- DBI (バージョン1.21以上)
- DBD::ODBC
PHP で SQL Server を利用できるように設定
Microsoftが提供しているドライバーをインストールします。
- Microsoft SQL Server Native Client のインストール
ダウンロードページからサーバ環境にあった Microsoft SQL Server 2008 Native Client をダウンロードします
ダウンロードされたsqlncli.mslをインストールします
- SQL Server Driver for PHPのインストール
SQL Server Driver for PHP Version 1.1のダウンロードページからダウンロードします
ファイルを起動し、任意の場所に展開します
展開されたファイルにはPHPのバージョンとNon-thread-safeかThread-safeか、ビルドに用いた"MS Visual C++"のバージョンによって幾つかのファイルがあります
当てはまるファイルを、PHPのインストールディレクトリにある"ext"ディレクトリにコピーします(ここでは例として"php_sqlsrv_52_nts_vc6.dll"が当てはまるものだったとします)
- php.iniの設定
php.iniを編集する必要があります
cgi.force_redirect = 0 extension=php_sqlsrv_52_nts_vc6.dll <= インストールしたDLLの名前を記入して下さい mssql.textlimit = 2147483647 mssql.textsize = 2147483647 mssql.datetimeconvert = Off mssql.secure_connection = On
SQL Server 2008 認証方式の変更
ここでの説明では SQL Server 認証を例に挙げていますが、Windows 認証でもダイナミックパブリッシングは可能です。
- Microsoft SQL Server Management Studio を起動します
- Microsoft SQL Server Management Studio が起動したので [Windows認証] で接続します。
- サーバーのプロパティを選択します
- [サーバーのプロパティ] が表示されました
- [サーバーのプロパティ] > [セキュリティ] を選択します
- [サーバー認証] : [Windows 認証モード] から [SQL Server 認証モードと Windows 認証モード]に変更
- [OK]ボタンをクリック
SQL Server 2008 データベースの作成
- [データベース] を右クリックし、[新しいデータベース] を選択します
- [新しいデータベース] 画面の [全般] を修正します
- データベース名: mta
- 所有者: <規定>
- [新しいデータベース] 画面の [オプション] を修正します
- 照合順序: Japanese_CI_AS(Shift_JIS、大文字・小文字を区別しない、アクセント文字を区別する)
- 復旧モデル: 完全
- 互換性レベル: SQL Server 2008 (100)
- [OK] ボタンをクリックします
新規ユーザーの作成
- [セキュリティ] > [ログイン] > [新しいログイン] を選択
新規ログインを作成します
- 認証方式を[Windows 認証] から [SQL Server 認証] に変更
- [ログイン名] を"Melody"に、[パスワード] と [パスワードの確認入力] に"Nelson"を入力
- [パスワードポリシーを適用する] からチェックボックスを外す
- [ユーザーマッピング]で、Melodyにデータベースのdb_owner権限を付与
- [OK] ボタンをクリックする
データベースへの接続テスト
Management Studioを使ってデータベースへ接続できるか確認します。
- Management Studio のデータベース接続画面
[認証] 方式が [SQL Server 認証]になっている事を確認して下さい。
- 認証 : SQL Server 認証
- ログイン : Melody
- パスワード : Nelson
- [接続] ボタンをクリックしてください。
接続が完了したら、システムレベルでデータベースへの接続が出来たことが解ります。
セキュリティのログインにデフォルトユーザー [sa] と、今回作成した [Melody] アカウントだけが居る事が確認できました。
mt-wizard.cgi でのデータベース設定
データベース設定画面では以下の様に入力します。
mt-config.cgiのデータベース設定
#======== REQUIRED SETTINGS ======== (中略) PublishCharset Shift_JIS #======== DATABASE SETTINGS ======== ObjectDriver MSSQLServer Database mta DBUser Melody DBPassword Nelson DBHost localhost ODBCDriver SQL Server Native Client 10.0
これで、MS SQL Server 2008でダイナミックパブリッシングが可能になりました。
MTA 管理画面でダイナミックパブリッシングの設定を行ってください。