Battlefield 2のPrivateStatsシステム「BF2Statistics」の導入方法について書こうと思います。
自分用のメモなので、readme原文をなぞりつつ適当に。

PHP、Apache、MySQL等の基本的説明については大幅に端折ってあります。自分で調べて解決してください。
出来ない場合は素直にあきらめましょう。

必要な環境は以下の通りです。

  • Battlefield 2 Server (patch 1.2+)
  • XAMPP/Apache/IIS5+
  • PHP 4.4.x or PHP 5.1.x
  • MySQL 4.x or MySQL 5.x

ファイルのダウンロード

BF2Statistics.comから下記のファイルをダウンロードする(要登録)。

  • BF2Statistics
  • BF2Statistics Web Interface

SQLサーバーの設定

  1. MySQL4又は MySQL5をインストールします。
  2. 新規データベース「bf2stats」を作成します。
  3. 新規ユーザー「bf2statslogger」を作成し、「bf2stats」へのアクセス権限を付与します。

Webサーバーの設定(インストール)

  1. PHPをサポートするhttpdをインストールします。(例: Apache、IIS、その他)
  2. PHPモジュール(PHP 4.4.x又はPHP 5.1.x)をインストールします。
  3. php.iniで以下の拡張機能のコメント(;)を外しておきます。
  4. - extension=php_mysql.dll
    - extension=php_mysql.dll
  5. 「bf2statistics_1.4.2.zip」を解凍し、ASPフォルダをサーバーのドキュメントルートに配置します。
  6. IIS ==> "C:/InetPub/wwwroot"
    Apache ==> "C:/Program Files/Apache Group/Apache2/htdocs" ==or== /usr/local/httpd/htdocs
    XAMPP ==> "C:/Program Files/XAMPP/htdocs" ==or== /opt/lampp/htdocs/
  7. 拡張子.aspxをPHPとして実行できるように設定してください。Apacheの場合は.htaccessに記述があるので、AllowOverrideが有効になっていれば何もしなくてもOKです。
  8. Webブラウザを利用してアドレスhttp://localhost/ASP/(http://127.0.0.1/ASP/又はhttp://サーバーのIPアドレス/ASP/でも可)にアクセスしてください。
  9. Usernameに「admin」、Passwordに「password」と入力してログインします。
  10. 「Install DB」を選択します。
  11. データベース作成時の情報を入力します。おそらく変更すべきなのは「Password」部分だけです。
  12. 「Confirm Process」にチェックを入れ、「Process」を選択します。
    この時、あまりにもエラーが出るようならば設定の不備を疑ってください。
  13. データベースが作成されたら、「Upgrade DB」を選択します。
  14. 「Confirm Process」にチェックを入れ、「Process」を選択します。
    「データベースは既に存在します」という警告が出ますが、無視して結構です。

Webサーバーの設定(コンフィグ)

  1. ロゴをクリックするとメニューが増えているはずなので、「Edit Config」を選択します。
  2. 「Admin User」、「Admin Password」を任意のものに変更しておきます。
    Auth Game Servers: サーバーのIPアドレスを入力します。
    Error Level: エラー時に詳細ログが表示されるように「Detailed (4)」を選択。
    Ignore AI Players: 「Yes」にするとBOTのデータが記録されなくなります。お好みで。
    Auth Admin IP’s: セキュリティ上設定しておく方が安全です。
  3. 設定が終わったら「Confirm Process」にチェックを入れ、「Update」を選択します。
  4. 次に「Test Config」を選択し、エラーが出ないかどうかチェックします。「Warn」と出る場合は問題ありませんが、「Fail」と表示される項目がある場合、設定を確認する必要があります。
  5. 「bf2statistics-web_Beta.zip」を解凍し、bf2statisticsフォルダの中にある「BF2Stats-config.php」をテキストエディタで開きます。
  6. 下記のような設定項目がありますので、設定します。
  7. $this->db_name = 'bf2stats'; // SQLサーバに作成したデータベース名
    $this->db_user = 'bf2statslogger'; // SQLサーバのアカウント名
    $this->db_pass = 'password'; // SQLアカウントのパスワード
    $this->db_srvr = 'localhost'; // 変更する必要はありません
    $this->prefix = ''; // should be fine.
  8. 編集が終わったら、上書き保存して閉じてください。
  9. 次に「config.php」をテキストエディタで開きます。
  10. $title = 'Server Name Here'; #タイトル
    $logo = 'YOUR LOGO HERE'; #サイトロゴ画像へのパス
    $titletext = 'Statistics For My Server'; #ページタイトル
    $topnum = 25; #トップページに表示する人数
    $asp = 'http://localhost/ASP’; #サーバーのIPアドレスを設定します
  11. 編集が終わったら、上書き保存して閉じてください。
  12. Webブラウザからアクセスできるところに「bf2statisticsフォルダ」を配置します。
  13. Webブラウザからアクセスしてstatsのページが表示されればOKです。

ゲームサーバの設定

  1. 「Battlefield 2/python」のバックアップを取ってください。
  2. bf2statistics_1.4.2.zipを解凍して、中にある「python」フォルダを「Battlefield 2/python」に上書きします。
  3. 「python/bf2/BF2StatisticsConfig.py」をテキストエディタで開きます。
  4. 「Backend Web Server」項目の「http_backend_addr = 」にWebサーバのアドレスを設定。
  5. 最後に「bf2web.gamespy.com」をWebサーバーのIPアドレスに書き換える必要があります。
  6. 「C:/WINDOWS/system32/drivers/etc」フォルダ内にあるhostsファイルを編集し、「サーバーIP bf2web.gamespy.com」の様に追記してください。
  7. 以上で設定は完了です。お疲れ様でした。実際に動かしてstatsが記録されるか確認してみましょう。

最後に

BFHQやアンロックを有効にするためにはクライアント側も「bf2web.gamespy.com」 => 「サーバーIP」への書き換えを行う必要があるのですが、私の環境の場合hostsを書き換えると起動しなくなるのでダメでした。
DNSサーバーを使うのが確実だと思いますが、readmeに「BF2PrivateStats.vbs」等を使った方法も記載されているのでそちらを試してみるのも良いと思われます。

関連記事