Time-stamp: "Sep 04 2003"
バグトラッキングシステム 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 のインストールについて説明します。
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 -ql <rpmパッケージ名>rpm パッケージ名 にはたとえば MySQL-client などを指定します。
$ 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 です。
MySQL サーバにアクセスするためには、MySQLユーザというものを作る必要があります。これは Unix のユーザとは別物なので、Unix では root ユーザになっていなくても MySQL の root ユーザは使用できます。
以下の図には 緑の枠で囲まれた 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 モジュールの一部は既に 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"'
ここでは Apache 1.3.x をインストールします。 RedHatLinux 付属の Apache を使用します。Red Hat から更新パッケージが出ていればそれを使用します。
以下の条件をみたすように、設定ファイル /etc/httpd/conf/httpd.conf を編集します。
User apache Group apache
--- 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",
<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
<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.
<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