Time-stamp: "Sep 04 2003"

Bugzilla - rpm からのインストール

バグトラッキングシステム Bugzilla 2.16 に必要なデータベースシステム (MySQL)・ Perl モジュール・ Web サーバ (Apache) を rpm を利用してインストールする方法、そして設定方法について説明します。

このページは Red Hat Linux 7.3 へのインストールを説明します。 Perl 5.6.1, Apache 1.3, MySQL 3.23 というそれぞれ最新版より少し前のバージョンを使用します。Perl 5.6.1 は Red Hat Linux 7.3 に標準で付属していますので、MySQL・Perl モジュール・Apache のインストールについて説明します。

データベースシステム (MySQL) のインストールと設定

Perl モジュールより前に MySQL をインストールする必要があります。Perl モジュールの中には MySQL をどこにインストールしたのか質問してくるものがあるためです。

ファイル取得・インストール

ここではバージョン 3.23 の最新バージョンを使用します。rpm パッケージからのインストールについて説明します。

ダウンロードページから適切なものを取得します。Red Hat Linux であれば Linux x86 RPM downloads から取得します。複数の rpm に分かれていますが、Server, Client だけ取得します。インストール/アップデートは以下のようにします。

# rpm -Uvh MySQL-*rpm
どこにファイルがインストールされるかをあらかじめ知りたい場合は
$ rpm -qlp <rpmファイル名>
で知ることができます。 rpm ファイル名 にはたとえば MySQL-client-3.23.57-1.i386.rpm などを指定します。 「-qlp」のところを「-qlvp」とするとファイルのサイズやパーミッションもわかります。
rpm をインストールした後であれば以下のようにします。
$ rpm -ql <rpmパッケージ名>
rpm パッケージ名 にはたとえば MySQL-client などを指定します。

たとえば Apache の設定ファイル httpd.conf はどこにインストールされたのかなぁというとき、$ rpm -ql apache | less とするとどこにインストールされたかをいつでも知ることができます。

初期設定

rpm からインストールすると自動的に MySQL管理テーブルを作成されます。 MySQL サーバも起動してくれます。ですが、Linux を一度再起動すると、MySQL サーバは自動的に起動してくれません。

Linux を起動したとき MySQL サーバも自動的に起動させるには

# /sbin/chkconfig mysql on

とします。 /etc/rc.d/rc3.d//etc/rc.d/rc5.d/ の下のファイル名が K<数字>mysql から S<数字>mysql に変わっていたら成功です。

MySQL サーバの起動・ストップはそれぞれ以下のようにおこないます。

# /etc/rc.d/init.d/mysql start

# /etc/rc.d/init.d/mysql stop

MySQL で日本語 (EUC-JP) を使うために、MySQL起動スクリプト /etc/rc.d/init.d/mysql を以下のように書き換えます。

せん
--- /etc/rc.d/init.d/mysql.org  Tue Jun 10 06:08:13 2003
+++ /etc/rc.d/init.d/mysql      Thu Aug 14 12:49:57 2003
@@ -131,7 +131,7 @@
     then
       # Give extra arguments to mysqld with the my.cnf file. This script may
       # be overwritten at next upgrade.
-      $bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file &
+      $bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file --default-character-set=ujis &
       # Make lock for RedHat / SuSE
       if test -w /var/lock/subsys
       then

なお、データが保存される場所は /etc/rc.d/init.d/mysql ファイルに datadir=/var/lib/mysql と書いてあるとおり、/var/lib/mysql です。

Bugzilla からアクセスするための設定

MySQL サーバにアクセスするためには、MySQLユーザというものを作る必要があります。これは Unix のユーザとは別物なので、Unix では root ユーザになっていなくても MySQL の root ユーザは使用できます。

ところで MySQLデータベースシステムのデータ構造について少し述べておきます。
  • データの最も大きなくくりは データベース になります。たとえば mysql データベースは MySQLユーザを管理するためなどに使用されます。 Bugzilla のデータは全部この後で作る bugs データベースに記録されます。
  • データベースの中に テーブル があります。テーブルというのは縦横に線が引かれている表のことです。表計算ソフトの画面を思い出していただければよいです。
  • テーブルの中に カラム (項目・列・column) があります。また 行 (row) もあります。

以下の図には 緑の枠で囲まれた 1つの データベース があります。その中には 2つの テーブル があります。そのテーブルの中に書いてある「名前」「性別」「年齢」といった項目が カラム です。黄色く (オレンジのも含みます) 塗ってあるのが です。

名前 性別 年齢 職業
Robert Male 11 Student
David Male 33 Businessman
Michael Male 55 Columnnist
名前 電話番号 住所
Robert 123-3210 CA
David 888-8887 UT
Michael 456-7890 AZ

Bugzilla はデフォルトでは bugs というユーザで MySQL サーバにアクセスします。このユーザは手動で作る必要があります。パスワードも考えておきましょう。

MySQL クライアント (mysql コマンド) で MySQLサーバにアクセスして、SQL文を手で入力します。

$ /usr/bin/mysql -uroot
mysql> use mysql;
             (mysql データベースを使用します。)
mysql> grant select,insert,update,delete,index,
    -> alter,create,drop,references on bugs.* to bugs@localhost
    -> identified by 'password';
             (bugs ユーザを作り、bugs というデータベースに対して
             書き込み読み込みができる権限を与えます。ちなみに
             bugs データベースはまだ作成していませんが権限は与えられ
             ます。"password" の部分は自分で考えたものを入力して
             ください。)

mysql> flush privileges;
             (権限を今すぐ有効にします。)
mysql> quit;

Perl モジュールのインストール

Perl モジュールの一部は既に Red Hat Linux に含まれています。その一覧は

$ rpm -qa | grep -i perl | sort

で表示されます。Red Hat Linux 7.3 の場合、DBI, XML-Parser などが含まれているモジュールです。それ以外にも perl 本体に最初から含まれているものもあります。

Perl モジュールを rpm からインストールする方法として、rpm パッケージを手動で作成してからインストールすることもできますが大変手間がかかります。

今回は rpm を作らずに CPAN.pm を使用してインストールします。

CPAN.pm を使ったインストール方法は Bugzilla のインストールと設定4.1.5. Perl Modules を参考にしてください。 なお Bugzilla が必要とする Perl モジュールは基本的に増えるだけで減ることはなく同じものをずっと使うので、たとえ Bugzilla のバージョンが古くても CPAN.pm で最新のものを入れておけば問題ないです。

root になって以下を実行することで必要なものはインストールされます。

# perl -MCPAN -e 'install "Bundle::Bugzilla"'

なぜか途中でエラーで止まったときは上記の同じコマンドをもう一度実行することで進むこともあるようです。どうしてもエラーで止まりエラーメッセージを見ても対処方法がわからないときは、Perl モジュールをソースからインストールしてみてください。

他に、なくてもいいけどあるとグラフ表示ができるという Perl モジュールがあります。インストールされていないと後述の checksetup.pl が警告を出すので、インストールしておきましょう。

# perl -MCPAN -e 'install "GD"'
# perl -MCPAN -e 'install "Chart::Base"'

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

ファイル取得・インストール

ここでは Apache 1.3.x をインストールします。 RedHatLinux 付属の Apache を使用します。Red Hat から更新パッケージが出ていればそれを使用します。

設定

以下の条件をみたすように、設定ファイル /etc/httpd/conf/httpd.conf を編集します。

  1. Web サーバ を動作させるユーザ・グループを apache という名にする。
  2. Web サーバにアクセスしたとき、Bugzilla のページが開かれるようにする。
  3. CGI スクリプトを有効にする。
  4. .htaccess というアクセス制限をおこなうためのファイルを有効にする。
  5. http://domain/ という URLが要求されたとき http://domain/index.cgi というファイルが読み込まれるようにする。
  1. → rpm パッケージからインストールした場合は既に以下の部分で設定されている。
    User apache
    Group apache
    
  2. → 今回 Bugzilla は /var/www/bugzilla/ に置くことにする。以下のように書き換える。
    --- httpd.conf.org      Thu Oct 24 03:53:13 2002
    +++ httpd.conf  Fri Aug 29 15:29:46 2003
    @@ -443,7 +443,7 @@
     # documents. By default, all requests are taken from this directory, but
     # symbolic links and aliases may be used to point to other locations.
     #
    -DocumentRoot "/var/www/html"
    +DocumentRoot "/var/www/bugzilla"
    
     #
     # Each directory to which Apache has access, can be configured with respect
    @@ -468,7 +468,7 @@
     #
     # This should be changed to whatever you set DocumentRoot to.
     #
    -<Directory "/var/www/html">
    +<Directory "/var/www/bugzilla">
    
     #
     # This may also be "None", "All", or any combination of "Indexes",
    
  3. → 上で書き換えた <Directory "/var/www/bugzilla"> のすぐ下の部分を以下のように書き換える。
    --- httpd.conf.org      Thu Oct 24 03:53:13 2002
    +++ httpd.conf  Fri Aug 29 15:29:46 2003
    @@ -477,7 +477,8 @@
     # Note that "MultiViews" must be named *explicitly* --- "Options All"
     # doesn't give it to you.
     #
    -    Options Indexes FollowSymLinks
    +    Options -Indexes FollowSymLinks ExecCGI
    +    AddHandler cgi-script .cgi
    
     #
     # This controls which options the .htaccess files in directories can
    
  4. <Directory "/var/www/bugzilla"> のすぐ下の部分を以下のように書き換える。
    @@ -484,7 +484,7 @@
     # override. Can also be "All", or any combination of "Options", "FileInfo",
     # "AuthConfig", and "Limit"
     #
    -    AllowOverride None
    +    AllowOverride Limit
    
     #
     # Controls who can get stuff from this server.
    
  5. → rpm パッケージからインストールした場合は以下の部分で既に指定されている。
    <IfModule mod_dir.c>
        DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.p
    hp3 index.phtml index.cgi
    </IfModule>
    

設定ファイルを書き換えたあとは、Apache Web サーバを再起動 (ストップしてから起動) させてください。

Linux を起動したとき Apache Web サーバも自動的に起動させるには以下のようにします。

# /sbin/chkconfig httpd on

Apache Web サーバの起動・ストップはそれぞれ以下のようにおこないます。

# /etc/rc.d/init.d/httpd start

# /etc/rc.d/init.d/httpd stop


itouh