2005-11-30

インストールの準備

仮想ディレクトリの作成

解凍すると次のフォルダが作成されます。

xoops-2.0.13a-JP

このフォルダの中には、次の3つのフォルダがあります。

  • docs
  • extras
  • html

XOOPSの設置で必要なのはhtmlフォルダだけです。htmlフォルダ内の全てのファイルを以下にコピーします。

D:\WWWRoot\xoops

D:\WWWRoot\はApacheのドキュメントルートです。本編の設定では XOOPSのURLは次のようになります。

http://localhost/xoops/

php.iniの編集

php.iniを以下のように編集して必要な拡張モジュールを組み込みます。

extension_dir = "C:/php5mb/ext"
・・・
extension=php_mysql.dll
extension=php_xmlrpc.dll

変更後、Apacheを再起動して下さい。

PHP5マルチバイト対策

本編のPHP設定ファイル(php.ini)の設定は、「PHP5.0/4.マルチバイト対応のPHP5を使う」に従っています。従って、文字セットに関する設定は.htaccessに書いて D:\WWWRoot\xoops の下に保存します。この設定はApacheの設定ファイル(httpd.conf)内に<Directory>ディレクティブを使って書くこともできます。

D:\WWWRoot\xoops\.htaccess

<IfModule mod_php5.c>
  php_value default_charset            EUC-JP
  php_value mbstring.internal_encoding EUC-JP
  php_value mbstring.script_encoding   EUC-JP
  php_value mbstring.http_output       EUC-JP
</IfModule>

上の設定ではPHPの内部文字セット(mbstring.internal_encoding)、スクリプト文字セット(mbstring.script_encoding)及びHTTP出力文字セット(mbstring.http_output及びdefault_charset)をeuc-jpにしています。

MySQL4.1X対策

MySQLサーバのバージョン4.1以上でXOOPS 2.0.13a JPを使用する場合、MySQLのクライアント文字セットを明示的にMySQLサーバに通知する必要があります。現時点(2005/11)のXOOPSではこの機能がサポートされておらずXOOPSのソースコードを変更する必要があります。

D:\WWWRoot\xoops\class\database\mysqldatabase.php

※ D:\WWWRoot\xoopsはXOOPSのインストールフォルダです。

mysqldatabase.php

class XoopsMySQLDatabase extends XoopsDatabase
{
  /**
   * Database connection
   * @var resource
   */
  var $conn;

  /**
   * connect to the database
   * 
   * @param bool $selectdb select the database now?
   * @return bool successful?
   */
  function connect($selectdb = true)
  {
    if (XOOPS_DB_PCONNECT == 1) {
      $this->conn = @mysql_pconnect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
    } else {
      $this->conn = @mysql_connect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
    }

  if (!$this->conn) {
      $this->logger->addQuery('', $this->error(), $this->errno());
      return false;
    }

    if($selectdb != false){
      if (!mysql_select_db(XOOPS_DB_NAME)) {
        $this->logger->addQuery('', $this->error(), $this->errno());
        return false;
      }
    }
    // MySql>=4.1 //////////////////////////////////////////////////////////////
    mysql_query("SET NAMES ujis", $this->conn);
    ////////////////////////////////////////////////////////////////////////////
    return true;
  }

  ・・・・・
}

追加するソースコードの以下の部分です。

    // MySql>=4.1 //////////////////////////////////////////////////////////////
    mysql_query("SET NAMES ujis", $this->conn);
    ////////////////////////////////////////////////////////////////////////////

より汎用的なコードを記述するには、MySQLのバージョンを取得して、MySQL4.1以上の場合のみ"SET NAME"するようにします。MySQLの文字セットに関しては「MySQL4.1/9.MySQLの実験/3.漢字の使用」を参照して下さい。

データベースの準備

MySQLにXOOPS用のデータベースを1つ準備し、そのデータベースにアクセスできるユーザアカウントを作成します。本編では次のようにします。

  • データベース:xoops
  • ユーザ   :xoops_user

(1)データベース xoopsの作成

本編ではデータベースのデフォルト文字セットをEUC-JPにしてPHPのクライアント文字セットと同じにします。

create database xoops default character set ujis;

(2)ユーザxoops_user の作成

データベースユーザxoops_userを作成しデータベースxoopsに対する全ての権限を与えます。

ファイルアクセス権の変更

以下のディレクトリ及びファイルをPHPから書込み可能にします。

D:\WWWRoot\xoops\uploads\
D:\WWWRoot\xoops\cache\
D:\WWWRoot\xoops\templates_c\
D:\WWWRoot\xoops\mainfile.php

※ D:\WWWRoot\はApacheのドキュメントルートです。



最終更新のRSS Last-modified: Wed, 30 Nov 2005 22:03:03 JST (4255d)