Mantis 導入(インストール)メモ
苦労していた Mantis のインストールが、ロリポップの MySQL バージョンアップにより成功しましたので、手順をまとめておきます。ロリポップへのインストールを前提としますが、他のレンタルサーバでもそこそこ参考にはなるかと思います。作業の流れは WordPress のインストールに似ており、極めて簡単に実施することができます。
Mantis のバージョンは、1.1.8 です。
ダウンロード。
Mantis の公式サイトからダウンロードします。
上部ナビゲーションの “Download” より。最新安定版として 1.1.8 が、最新の開発版として 1.2.0rc2 が公開されていますが、今回は運用するものなので安定版である 1.1.8 を利用しています。
データベースの作成。
サーバ上にデータベースを作成しておきます。ロリポップはデータベースは一つしか作成できませんので、既に作成していればそれを利用することになります。まだ作成してなければ、マニュアルに従って作成しておきます。
ロリポップ以外のサーバを利用の場合も、ホスティング先のマニュアルに従って MySQL のデータベースを作成しておけばよいです。
アップロード。
ダウンロードした .zip または .tar.gz をサーバにアップロードします。ターミナルが使えるようなサーバであれば圧縮ファイルをアップロードしてサーバ上で展開しますが、ターミナルが使えないロリポップの場合には、ローカル環境で展開してからアップロードします。ファイルサイズの合計は 9.4 MB です。
そもそも Mantis は AMP 環境で実行でき、かつターミナルからのコマンド入力がなくてもインストールできる数少ない BTS なので、Mantis を選択する時点でおそらくターミナル環境のないサーバで利用されるケースも多いのではないかと想像します。
以後、アップロード先を <mants_root>
とします。
チェック。
アップロードが終わったら、以下のスクリプトを実行(ブラウザで開くだけです)して結果を確認します。
<mantis_root>/admin/check.php
このスクリプトはインストールに必要な環境があるかどうかをチェックするだけのもので、まだアップロード下ファイル群にも、データベースにも変更は加えません。
check.php
の結果はブラウザに表示されますが、この時点ではおそらく最初のチェック項目だけ "BAD"
というエラー表示になるかとおもいます。
項目を見れば分かりますが、"localhost"
上の "bugtracker"
というデータベースに "mantisdbuser"
というユーザ名で接続できない、というエラーです。自分が作ったデータベースを指定していないので当然のエラーで気にする必要はありません。
先頭以外の項目でエラーが出ている場合には、そのエラー内容を取り除く方法を調べて対処してから先に進みます。
設定。
Mantis の設定は、画面上から設定できるものを除いて、すべての設定は
<mantis_root>/config_inc.php
に記述することによって行います。Mantis の設定項目全体は、<mantis_root>/config_defaults_inc.php
という長大なファイルにあります。config_inc.php
は、その設定値を上書きできる設定ファイルです。バージョンアップで上書きされる可能性のある config_defaults_inc.php
ではなく、config_in.php
に各種設定を記載していきます。
ダウンロードしたファイル一式には、config_inc.php.sample
というサンプルファイルがあります。これを config_inc.php
にリネームし、内容を修正します。サンプルファイルには最低限必要な項目が含まれているので、それらをサーバ環境に合わせて設定します。
- $g_hostname
- $g_db_username
- $g_db_password
- $g_database_name
- $g_db_type
は、データベースの接続設定です。サーバの管理画面で必要な設定情報を確認して設定します。$g_db_type
は "mysql"
固定になります。
- $g_administrator_email
- $g_webmaster_email
- $g_from_email
- $g_return_path_email
は、メールアドレスの設定です。$g_webmaster_email
は各ページの一番下(フッタ)に、問い合わせ先アドレスとしてリンクが出力されるようになります。クロールされてスパムメールが大量に舞い込むことになると思いますので、公開サイトであれば空欄にしておくのが賢明です。$g_administrator_email
を除いて、個人のメールアドレスではなく Mantis 用のメールアカウントを用意して設定するのが望ましいと考えます。
- $g_allow_file_upload
は、ファイルアップロード機能のスイッチです。check.php
の出力の下のほうでも設定状態とチェック結果が表示されていました。どういう運用をするかによるので一概には言えませんが、ロリポップであれば、データベースのサイズやサーバ負荷を考えても、ファイルアップロードは OFF
にしておくのがいいのではないかと考えています。私は OFF
にしています。
最初のサンプルにない項目でインストール時に有用な項目として以下があります。
- $g_db_table_prefix
これは、Mantis が利用するテーブル名の最初の接頭詞(prefix)を指定することができるものです。デフォルト値は 'mantis'
になります。もし Mantis のために専用のデータベースが用意出来ない場合(ロリポップも作成できるデータベースは一つだけなのでこれにあたります)や、同じデータベース内に複数の Mantis のデータを格納しなければならないケースでは、prefix を変更することにより、テーブル名の重複を回避することができる場合があります。
これらの設定を正しく設定し、再び <mantis_root>/admin/check.php
を開いてみると、データベース接続の項目も "GOOD"
に変わっており、オールグリーンな状態になっているのではないでしょうか。
check.php
の出力結果の末尾近くには、メールの送信テスト用ボタンもありますので、テスト送信して実際に送信されるメールヘッダを確認しておくといいでしょう。
なお、ここまでの項目以外に、運用にあたって有用なカスタマイズができる設定項目が多数あります。私が有用だと思って設定を変更している項目は以下になります。それぞれどのような設定項目かは config_defaults_inc.php
にコメントで丁寧に説明されていますので、興味があれば確認してみてください。
- $g_from_name
- $g_allow_blank_email
- $g_default_languate
- $g_window_title
- $g_page_title
- $g_enable_project_documentation
インストール。
いよいよインストールの本番です。ここまでの作業もインストール作業には違いないのですが、Mantis のテーブルをデータベースにつくり、必要な各種設定を行うという意味では、インストール作業はここからです。
<mantis_root>/admin/install.php
を実行します。
config_inc.php
にデータベース接続情報が記述してあれば、自動でフォームに値が入っています。ただ、Admin Username
と Admin Password
の欄は空欄です。これは、Database name
のデータベースを自動的に作成する場合に、データベース作成の権限を持つユーザを指定するもので、事前にデータベースを作成してある場合には必要ないので空欄で問題ありません。
"Install/Upgread Database"
のボタンを押すと、インストール(データベースの作成と初期値の設定)が行われます。
途中はテーブルとそのインデックスが延々続くので省略。結果出力の末尾で
Install was successful.
となっていれば OK です。Continue to log into Mantis
のお誘いに乗ると、ログイン画面に連れて行ってくれます。
アカウント整備。
ログイン画面には警告が出ています。
- You should disable the default “administrator” account or change its password.
- Admin directory should be removed.
まず、最初に言われている通り、管理者アカウントを整理します。インストール直後は、ユーザ名 "administrator"
パスワード "root"
の固定の管理者アカウントが用意されています。まずはこのアカウントでログインし、すぐに別の管理者アカウントを作成してログインし直して、administrator
アカウントを削除します。
ディレクトリ削除。
もうひとつログイン画面で警告されるとおりに、<mantis_root>/admin
フォルダをサーバから削除してしまいます。これはとても重要です。admin
フォルダを削除しておかないと、install.php
を第三者に起動されたり、check.php
からデータベースサーバやデータベース名、ユーザ名などが知られてしまいます。確実に消すようにしておきます。
運用開始。
というわけでとっても簡単な Mantis のインストール手順でした。
あとは、実際に運用を開始するだけです。プロジェクトを作成し、チケットを登録してバグ管理を始めます。
運用を開始する前に必要があれば設定しておきたい項目としては、
- サインアップを有効にするか
- ゲストログインを有効にするか
- アクセス解析用トラッキングコードの埋め込み
が考えられます。
サインアップを無効にする。
サインアップを有効にしていれば、BTS を利用したい人は自分でユーザ登録をし、メール認証を済ませて Reporter 権限で参加します。無効にしていれば、管理者が追加したアカウントしか参加できなくなります。どこまでコントロールしたいか、運用する BTS とプロジェクトの特性によって判断します。デフォルトは ON です。
設定項目は
- $g_allow_signup = OFF
です。これを config_inc.php
に記述すれば、ログイン画面のサインアップ用のリンクが消え、アカウントの追加が管理画面以外からは出来なくなります。
ゲストログインを有効にする。
ゲストログインを有効にすると、サインアップやアカウントの追加がされなくても、チケット(バグ)の内容を見ることが出来るようになります。デフォルトは OFF です。これもメンバを限定するか、広く多くの方に診てもらうか、BTS とプロジェクトの特性によって判断します。
設定項目は、以下の 2 つです。
- $g_allow_anonymous_login = ON
- $g_anonymous_account = 'xxxxx'
$g_anonymous_account
の'xxxxx'
は、アクセス権に注意して、ゲスト専用のユーザを別途登録しておき指定します。anonymous
や guest
といった名前がいいと思います。これにより、ログイン画面には anonymous login
(日本語の場合は ”ゲストログイン” )というリンクが表示され、匿名ユーザでのログインが出来るようになります。また。検索クエリのパーマリンクや、バグ ID を指定した個別チケットへのリンクも、ログインなしに直接表示できるようになります。
アクセス解析 (GA) 対応。
公開する BTS の場合、アクセス情報の解析は開発にも役立つと思われます。ホスティングサーバの解析サービスを利用する以外に、Google Analytics を利用するケースは多いと思います。
Google Analytics では、トラッキング用のスクリプトコードを </body>
タグの直前に入れる必要がありますが、この対応の手順を説明します。
まず、トラッキング用のスクリプトコードを、Google Analytics のページからコピーし、.php ファイルにそのまま保存しルートに配置します。たとえば <mantis_root>/ga_inc.php
など。
次に、それを前ページの </body>
タグの直前に挿入するには、
<mantis_root>/core/html_api.php
内の関数 html_body_end()
に、ga_inc.php
の読み込みを記載します。
# (14) End the <body> section function html_body_end() { include("ga_inc.php"); echo '</body>', "¥n"; }
ga_inc.php
は、core
の下ではなく、<mantis_root>
の直下に配置します。
読み込みにせず直接出力内容を記載することもできますが、echo
コマンドとエスケープシーケンスだらけになりますので、include
を利用するのが簡単で間違いがないと思います。