Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Movable Type 5.1 ManualMovable Type 5.1 マニュアル

MS SQL Server 2008 で ダイナミックパブリッシング を利用する

最終更新日: 2017.10.06

MS SQL Server 2008(以下 SQL Server 2008)でダイナミックパブリッシングを利用する場合、PHPが対応していないため、文字コードをUTF-8ではなく、Shift_JISにする必要があります。現状、Movable Type ではUTF-8のみをサポート対象としているため、本ドキュメントの内容はサポート対象外となる点にご注意ください。

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が提供しているドライバーをインストールします。

  1. Microsoft SQL Server Native Client のインストール

    ダウンロードページからサーバ環境にあった Microsoft SQL Server 2008 Native Client をダウンロードします

    ダウンロードされたsqlncli.mslをインストールします

  2. 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"が当てはまるものだったとします)

  3. 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 認証でもダイナミックパブリッシングは可能です。

  1. Microsoft SQL Server Management Studio を起動します

    起動画面

  2. Microsoft SQL Server Management Studio が起動したので [Windows認証] で接続します。

    起動終了、接続

    接続完了

  3. サーバーのプロパティを選択します

    [MS SQL Management Studio]

  4. [サーバーのプロパティ] が表示されました

    [サーバーのプロパティ]

  5. [サーバーのプロパティ] > [セキュリティ] を選択します

    [サーバーのプロパティ] > [セキュリティ]

    • [サーバー認証] : [Windows 認証モード] から [SQL Server 認証モードと Windows 認証モード]に変更
    • [OK]ボタンをクリック

SQL Server 2008 データベースの作成

  1. [データベース] を右クリックし、[新しいデータベース] を選択します

    新規データベースの作成

  2. [新しいデータベース] 画面の [全般] を修正します

    [新しいデータベース] 画面 > 全般

    • データベース名: mta
    • 所有者: <規定>
  3. [新しいデータベース] 画面の [オプション] を修正します

    [新しいデータベース] 画面 > オプション

    • 照合順序: Japanese_CI_AS(Shift_JIS、大文字・小文字を区別しない、アクセント文字を区別する)
    • 復旧モデル: 完全
    • 互換性レベル: SQL Server 2008 (100)
  4. [OK] ボタンをクリックします

新規ユーザーの作成

  1. [セキュリティ] > [ログイン] > [新しいログイン] を選択

    新規ログインを作成します

    [新しいログイン] を作成

    • 認証方式を[Windows 認証] から [SQL Server 認証] に変更
    • [ログイン名] を"Melody"に、[パスワード] と [パスワードの確認入力] に"Nelson"を入力
    • [パスワードポリシーを適用する] からチェックボックスを外す
    • [ユーザーマッピング]で、Melodyにデータベースのdb_owner権限を付与
    • [OK] ボタンをクリックする

データベースへの接続テスト

Management Studioを使ってデータベースへ接続できるか確認します。

  1. Management Studio のデータベース接続画面

    データベース接続画面

    [認証] 方式が [SQL Server 認証]になっている事を確認して下さい。

    • 認証 : SQL Server 認証
    • ログイン : Melody
    • パスワード : Nelson
  2. [接続] ボタンをクリックしてください。

    接続完了画面

    接続が完了したら、システムレベルでデータベースへの接続が出来たことが解ります。

    セキュリティのログインにデフォルトユーザー [sa] と、今回作成した [Melody] アカウントだけが居る事が確認できました。

mt-wizard.cgi でのデータベース設定

データベース設定画面では以下の様に入力します。

[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 管理画面でダイナミックパブリッシングの設定を行ってください。