MantisBT
MantisBT (Mantis Bug Tracker) は PHP で書かれたバグトラッカーです。MantisBT が備えている機能一覧はウェブサイトを見てください。
目次
インストール
mantisbtAUR パッケージをインストールしてください。
ウェブサーバーやアプリケーションサーバー (UWSGI など) を選択してアプリケーションを使えるようにします。
設定
mantisbt には正規の 管理ガイド が存在し、ガイドに従ってセットアップすることができます。
全ての設定は /etc/webapps/mantisbt/config_inc.php に記述します。
- 互換性のある DBMS をセットアップして 'Database Configuration' セクションを使って mantisbt と DBMS を接続してください。
- サインアップ時の CAPTCHA を無効化しない場合 'Anonymous Access / Signup' セクションに特別な注意が必要です (#PHP 拡張や #TTF フォントを参照)。
- SMTP を使いたい場合は 'Email Configuration' セクションでセットアップしてください。mantisbt はデフォルトで phpmailer を使用しますが、グレイリスティングを使用するメールサーバーにメールを遅れません。
どんな場合でも、mantisbt を正しく動作させるには満たさなくてはいけない要件が存在します:
PHP 拡張
TTF フォント
- CAPTCHA の作成に使用する TrueType フォントをインストールしてください。
- 使用したいフォントのパスと名前を設定してください:
/etc/webapps/mantisbt/config_inc.php
# trailing slash is important!
$g_system_font_folder = '/usr/share/fonts/TTF/';
# here DroidSans.ttf from the package ttf-droid is used for illustration
$g_font_per_captcha = 'DroidSans.ttf';
ウェブサーバー
nginx + uwsgi
以下はバグトラッカーでサブドメインを使用する設定例です。以下で記述しているファイルは /etc/nginx/nginx.conf の中で読み込む必要があります。mantisbt でサブフォルダを使う構成の場合、多少の修正が必要です。
/etc/nginx/nginx.conf
server {
listen 80;
listen [::]:80;
server_name bugs.mydomain.org www.mydomain.org;
return 301 https://bugs.mydomain.org$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.bugs.mydomain.org;
return 301 https://bugs.mydomain.org$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name bugs.mydomain.org;
include tls.conf;
root /usr/share/webapps/mantisbt;
access_log /var/log/nginx/access.bugs.mydomain.log;
error_log /var/log/nginx/error.bugs.mydomain.log;
include letsencrypt-challenge.conf;
location ~ ^/(admin|core|doc|lang) {
deny all;
}
location / {
index index.php;
try_files $uri $uri/ @mantisbt;
}
location @mantisbt {
include uwsgi_params;
uwsgi_modifier1 14;
uwsgi_pass unix:/run/uwsgi/mantisbt.sock;
}
location ~ \.php?$ {
include uwsgi_params;
uwsgi_modifier1 14;
uwsgi_pass unix:/run/uwsgi/mantisbt.sock;
}
# Deny serving files beginning with a dot, but allow letsencrypt acme-challenge
location ~ /\.(?!well-known/acme-challenge) {
access_log off;
log_not_found off;
deny all;
}
}
UWSGI を使うことでリソースの消費量が少ないセットアップを構築できます。
/etc/uwsgi/mantisbt.ini
[uwsgi] procname-master = mantisbt plugins = php master = true socket = /run/uwsgi/%n.sock uid = http gid = http processes = 10 cheaper = 2 cheaper-step = 1 idle = 600 die-on-idle = true php-allowed-ext = .php php-docroot = /usr/share/webapps/mantisbt php-index = index.php php-set = date.timezone=Europe/Berlin php-set = open_basedir=/tmp/:/usr/share/fonts/TTF:/usr/share/webapps/mantisbt:/usr/share/webapps/mantisbt/core:/etc/webapps/mantisbt php-set = session.save_path=/tmp php-set = session.gc_maxlifetime 21600 php-set = session.gc_divisor 500 php-set = session.gc_probability 1 php-set = post_max_size=64M php-set = upload_max_filesize=64M php-set = always_populate_raw_post_data=-1 php-set = extension=curl.so php-set = extension=gd.so php-set = extension=imagick.so php-set = extension=intl.so php-set = extension=mysqli.so
上記のファイルを修正した場合、systemd を使って nginx を再起動して mantisbt の uwsgi ソケットを起動・有効化してください。
データベース
アプリケーションが利用できるようになったら、/admin/install.php からデータベースをセットアップしてください。ページの指示に従えば mantisbt はテーブルを作成します。
管理者
mantisbt によって最初に作成されるアカウントは administrator でパスワードは root です。
使用方法
これで mantisbt のセットアップは全て終了です。administrator ユーザーは新しいプロジェクトを作成してユーザーに権限を与えることができます。