‘phpBB’ カテゴリーのアーカイブ

phpBB + SQL Server 2008

2009年5月14日 木曜日

phpbb-sqlsrv-setup04

phpBBは、オープンソースの電子掲示板です。

Windows Web Server 2008 + IIS7.0でデータベースにSQL Server 2008を利用する場合の、phpBBのインストール手順を以下に示します。

今のところ日本語を利用すると文字化けしてしまいます。
PHPのソースがUTF-8で、php_sqlsrv.dllを利用して、SQL Serverに文字化けせずにデータを入れる方法をご存じでしたら、お教えくださいm(__)m

2009/08/19にリリースされたSQL Server Driver for PHP 1.1 CTPにより日本語での利用が可能になりました。

※php_sqlsrv.dllを利用するためにphpBBのソースを変更しています。
インストールと記事の投稿・閲覧などの基本的な動作は確認しましたが、全ての動作を保障しているわけではありません。
php_sqlsrv.dllの変更による不具合がありましたら、この記事のコメントよりご連絡ください。

  1. PHPのインストール
    PHPがインストールされていない場合は、本サイトのPHPページを参照して、PHPをインストールする。
  2. SQL Server Driver for PHPのインストール
    PHPからSQL Serverにアクセスするためのドライバである、SQL Server Driver for PHPがインストールされていない場合は「PHP on IISからSQL Serverを使う」を参照してインストールする。
  3. phpBBのダウンロード
    ダウンロードページで「DOWNLOAD STABLE RELEASE」を選択し、zip形式のFull Packageをダウンロードする。(ex. phpBB-3.0.5.zip)
  4. ダウンロードしたファイルを任意のインストールしたいフォルダに展開する。
    ex.) C:¥WebApplications¥phpbb
    以降、「%PHPBB_HOME%」と記述する。
  5. 日本語化ファイルのダウンロード
    ダウンロードページで「DOWNLOAD LANGUAGE PACKS」を選択し、日本語のzip形式LANGUAGEファイルをダウンロードする。(ex. lang_ja.zip)
  6. ダウンロードした日本語化ファイルを、languageフォルダに展開する。
    ex.) %PHPBB_HOME%¥language¥ja
  7. ファイル、フォルダのアクセス権の設定
    当サイトの「IIS アプリケーションフォルダに必要なアクセス許可」を参照して%PHPBB_HOME%のアクセス許可を設定する。
    以下のファイルおよびフォルダ以下は、IUSRグループが書き込み可能にする。

    • %PHPBB_HOME%¥config.php
    • %PHPBB_HOME%¥store¥
    • %PHPBB_HOME%¥cache¥
    • %PHPBB_HOME%¥files¥
    • %PHPBB_HOME%¥images¥avatars¥upload¥
  8. データベースの設定
    phpBBは、標準でSQL Serverに対応している。
    しかしそれは、php_mssql.dllを利用するSQL Server 2000だけで、SQL Server 2008や2005には対応していない。
    今回はphpBBのソース修正も伴うが、SQL Server 2008を利用する。
    SQL Server 2008にphpBB専用のデータベースを作成する場合は、 当サイトの「SQL Server 2008 データベースの作成」を参照。
  9. phpBBソースの変更
    phpBB 3.0.4の場合の変更対象を示す。

    • 以下のファイルの「case 'mssql_odbc':」の次の行に「case 'sqlsrv':」と書き加える。
      • %PHPBB_HOME%¥search.php
      • %PHPBB_HOME%¥includes¥cache.php
      • %PHPBB_HOME%¥includes¥functions_admin.php
      • %PHPBB_HOME%¥includes¥message_parser.php
      • %PHPBB_HOME%¥includes¥acp¥acp_database.php
      • %PHPBB_HOME%¥includes¥acp¥acp_profile.php
      • %PHPBB_HOME%¥includes¥acp¥acp_reasons.php
      • %PHPBB_HOME%¥includes¥acp¥acp_users.php
      • %PHPBB_HOME%¥includes¥db¥db_tools.php
      • %PHPBB_HOME%¥install¥database_update.php
      • %PHPBB_HOME%¥install¥install_convert.php
      • %PHPBB_HOME%¥install¥install_install.php
      • %PHPBB_HOME%¥install¥convertors¥functions_phpbb20.php

      ex.)


      case 'mssql':
      case 'mssql_odbc':
      case 'sqlsrv': ← 追加行

      「mssql_odbc」で全ファイルをgrepし、変更箇所を探すと良いだろう。

    • %PHPBB_HOME%¥language¥en¥install.phpに、「DLL_SQLSRV」リソースを追加する。
      ex.)

      'DLL_MSSQL' => 'MSSQL Server 2000+',
      'DLL_SQLSRV' => 'MSSQL Server 2005+',   ← 追加行
      'DLL_MSSQL_ODBC' => 'MSSQL Server 2000+ via ODBC',

    • %PHPBB_HOME%¥includes¥functions_install.phpのget_available_dbms関数に、データベースへの接続情報を追加する。
      ※mssqlとmssql_odbcの間あたりが良いかも。
      ex.)

      'mssql' => array(
      ... 省略 ...
      ),
      // ↓ここから追加
      'sqlsrv' => array(
      'LABEL' => 'MS SQL Server 2005+',
      'SCHEMA' => 'sqlsrv',
      'MODULE' => 'sqlsrv',
      'DELIM' => 'GO',
      'COMMENTS' => 'remove_comments',
      'DRIVER' => 'sqlsrv',
      'AVAILABLE' => true,
      '2.0.x' => true,
      ),
      // ↑ここまで追加
      'mssql_odbc' => array(
      ... 省略....

  10. phpBBソースファイルの追加
    • %PHPBB_HOME%¥install¥schemas¥sqlsrv_schema.sql
      1. %PHPBB_HOME%¥install¥schemas¥mssql_schema.sqlからコピーしてファイルを作成する。
      2. 先頭の

        BEGIN TRANSACTION
        GO

        末尾の

        COMMIT
        GO

        を削除する。

    • %PHPBB_HOME%¥includes¥db¥sqlsrv.php
      当サイトからsqlsrv.phpをダウンロードし、%PHPBB_HOME%¥includes¥db¥に置く。
      ※同じディレクトリにあるmssql.phpを参考にして作成しました。このファイルの利用は自己責任でお願いします。
      ※このファイルは、phpBB3.0.4, 3.0.5用です。他のバージョンをご利用の場合は、これを参考にしてmssql.phpを変更してください。
  11. IIS仮想ディレクトリの設定
    IIS仮想ディレクトリの作成を参照して、IISの仮想ディレクトリを追加する。
    物理パスには%PHPBB_HOME%(ex. C:¥WebApplications¥phpbb)を指定する。
  12. phpBBのセットアップを行う。
    1. サイトURL(http://{あなたのURI}/{IIS仮想ディレクトリ}/にアクセスし、「はじめに」ページで上部の[インストール]タブをクリックする。
      ex.) http://www.yourdomain.com/phpbb/
      phpbb-setup01
    2. 「導入」ページで「次のステップへ」をクリックする。
      phpbb-setup02
    3. 「Installation compatibility」ページで、問題がないことを確認する。
      • 「PHPのバージョンと設定」のすべて:「はい」
      • 「mbstring拡張モジュールのチェック」のすべて:「はい」
      • 「データベースサポート」の「MSSQL Server 2005+」:「利用できます」
      • 「ファイルとディレクトリ [ 必須 ]」のすべて:「見つかりました, 書き込めます」

      phpbb-setup03

    4. 「データベースの設定」ページで、データベースへの接続情報を入力する。
      phpbb-en-setup04

      データベースの種類 MSSQL Server 2005+
      データベースサーバのホスト名またはDSN SQL Serverのサーバー名
      ローカルのSQL Server 2008 Expressなら
      「localhost¥SQLEXPRESS」
      データベースサーバのポート番号 受信ポート番号をデフォルトから変更している場合は入力する
      データベースの名前 phpBBのデータを蓄積するための、前述の8.データベースの設定で作成したデータベースか、既存のSQL Serverデータベース名を指定する。
      ex.) phpbb
      データベースのユーザー名 データベースに接続するためのユーザー名を指定する。
      ただし、SQL ServerがWindows認証の場合は空欄にする。
      ex.) phpBB
      データベースのパスワード データベースに接続するユーザーのパスワードを指定する。
      ただし、SQL ServerがWindows認証の場合は空欄にする。
      データベーステーブルの接頭語 データベースのテーブル名の先頭につける文字列を指定する。
      一つのデータベースに複数のアプリケーションのテーブルを作成する場合、テーブル名がぶつからないようにするためのもの。
      ex.) phpbb_
    5. 「データベースの設定 - データベースへの接続」ページで、接続に成功することを確認する。
      phpbb-setup05
    6. 「管理人設定」ページで、管理者の情報を入力する。
      phpbb-setup06
    7. 「管理人設定」ページ(2)で、テストをパスすることを確認する。
      phpbb-setup07
    8. 「コンフィグファイル」ページで、コンフィグファイルconfig.phpにデータを書き込んだことを確認する。
      phpbb-setup08
    9. 「詳細な環境設定」ページで、必要な設定をする。
      PHPのSMTP設定をしている場合、「SMTPサーバの仕様」は「いいえ」で良い。
      phpbb-setup09
    10. 「データベーステーブルの作成」ページで、テーブルの作成と初期データの投入がされたことを確認する。
      phpbb-setup10
    11. 以上でphpBBの初期設定は完了
      phpbb-setup11
  13. セキュリティの向上
    1. %PHPBB_HOME%¥installディレクトリを削除する。
    2. config.phpファイルをIUSRグループから書込み禁止にする。
  14. トップページ
    トップページのURLは、http://{あなたのURI}/{IIS仮想ディレクトリ}
    ex.) http://www.yourdomain.com/phpbb/
    phpbb01

以上

[2009/08/18] SQL Server Driver for PHP 1.1 CTPのリリースに伴い、日本語環境で利用できるように内容を修正しました。

  1. 日本語化ファイルのダウンロード
    ダウンロードページで「DOWNLOAD LANGUAGE PACKS」を選択し、日本語のzip形式LANGUAGEファイルをダウンロードする。(ex. lang_ja.zip)
  2. ダウンロードした日本語化ファイルを、languageフォルダに展開する。
    ex.) %PHPBB_HOME%¥language¥ja

[参考書籍]

phpBB

2009年5月2日 土曜日

phpBBは、オープンソースの電子掲示板です。

Windows Web Server 2008 + IIS7.0へのphpBBのインストール手順を以下に示します。

  1. PHPのインストール
    PHPがインストールされていない場合は、本サイトのPHPページを参照して、PHPをインストールする。
  2. phpBBのダウンロード
    ダウンロードページで「DOWNLOAD STABLE RELEASE」を選択し、zip形式のFull Packageをダウンロードする。(ex. phpBB-3.0.4.zip)
  3. ダウンロードしたファイルを任意のインストールしたいフォルダに展開する。
    ex.) C:¥WebApplications¥phpbb
    以降、「%PHPBB_HOME%」と記述する。
  4. 日本語化ファイルのダウンロード
    ダウンロードページで「DOWNLOAD LANGUAGE PACKS」を選択し、日本語のzip形式LANGUAGEファイルをダウンロードする。(ex. lang_ja.zip)
  5. ダウンロードした日本語化ファイルを、languageフォルダに展開する。
    ex.) %PHPBB_HOME%¥language¥ja
  6. ファイル、フォルダのアクセス権の設定
    当サイトの「IIS アプリケーションフォルダに必要なアクセス許可」を参照して%PHPBB_HOME%のアクセス許可を設定する。
    以下のファイルおよびフォルダ以下は、IUSRグループが書き込み可能にする。

    • %PHPBB_HOME%¥config.php
    • %PHPBB_HOME%¥store¥
    • %PHPBB_HOME%¥cache¥
    • %PHPBB_HOME%¥files¥
    • %PHPBB_HOME%¥images¥avatars¥upload¥
  7. データベースの設定
    phpBBでは、オープンソースWebアプリケーションでは一般的なMySQLやPostgreSQL、SQLiteをはじめ、SQL ServerやOracleなど様々なデータベースを利用することができる。
    今回はMySQL 5.1を利用する。
    MySQLにphpBB専用のデータベースを作成する場合は、「MySQL データベースの作成」を参照。
  8. IIS仮想ディレクトリの設定
    「IIS仮想ディレクトリの作成」を参照して、IISの仮想ディレクトリを追加する。
    物理パスには%PHPBB_HOME%(ex. C:¥WebApplications¥phpbb)を指定する。
  9. phpBBのセットアップを行う。
    1. サイトURL(http://{あなたのURI}/{IIS仮想ディレクトリ}/install/にアクセスし、「はじめに」ページで上部の[インストール]タブをクリックする。
      ex.) http://www.yourdomain.com/phpbb/install/
      phpbb-setup01
    2. 「導入」ページで「次のステップへ」進む。
      phpbb-setup02
    3. 「インストールの診断」ページで、問題がないことを確認する。
      • 「PHPのバージョンと設定」のすべて:「はい」
      • mbstring 拡張モジュールのチェック」のすべて:「はい」
      • データベースのサポートの「MySQL」か「MySQL with MySQLi Extension」のどちらか:利用できます (今回は「MySQL」を利用する。)
      • 「ファイルとディレクトリ [ 必須 ]」のすべて:見つかりました, 書き込めます

      phpbb-setup03

    4. 「データベースの設定」ページで、データベースへの接続情報を入力する。
      phpbb-setup04

      データベースの種類 MySQL / MySQL with MySQLi Extension
      データベースサーバのホスト名 または DSN ローカルのMySQLに接続するなら空欄でよい
      データベースサーバのポート番号 受信ポート番号をデフォルトから変更している場合は入力する
      データベースの名前 phpBBのデータを蓄積するための、前述の7.データベースの設定で作成したデータベースか、既存のMySQLのデータベース名を指定する。
      ex.) phpbb
      データベースのユーザー名 MySQLデータベースに接続するためのユーザー名を指定する。
      ex.) phpBB
      データベースのパスワード MySQLデータベースに接続するユーザーのパスワードを指定する。
      データベーステーブルの接頭語 データベースのテーブル名の先頭につける文字列を指定する。
      一つのデータベースに複数のアプリケーションのテーブルを作成する場合、テーブル名がぶつからないようにするためのもの。
      ex.) phpbb_
    5. 「データベースの設定 - データベースへの接続」ページで、接続に成功することを確認する。
      phpbb-setup05
    6. 「管理人設定」ページで、管理者の情報を入力する。
      phpbb-setup06
    7. 「管理人設定」ページ(2)で、テストをパスすることを確認する。
      phpbb-setup07
    8. 「コンフィグファイル」ページで、コンフィグファイルconfig.phpにデータを書き込んだことを確認する。
      phpbb-setup08
    9. 「詳細な環境設定」ページで、必要な設定をする。
      PHPのSMTP設定をしている場合、「SMTPサーバの使用」は「いいえ」で良い。
      phpbb-setup09
    10. 「データベーステーブルの作成」ページで、テーブルの作成と初期データの投入がされたことを確認する。
      phpbb-setup10
    11. 以上でphpBBの初期設定は完了
      phpbb-setup11
  10. セキュリティの向上
    1. %PHPBB_HOME%¥installディレクトリを削除する。
    2. config.phpファイルをIUSRグループから書込み禁止にする。
  11. トップページ
    トップページのURLは、http://{あなたのURI}/{IIS仮想ディレクトリ}
    ex.) http://www.yourdomain.com/phpbb/
    phpbb01

以上

[参考書籍]