Redmineは、無料のオープンソースプロジェクト管理および問題追跡アプリケーションです。クロスプラットフォームおよびクロスデータベースであり、RubyonRailsフレームワーク上に構築されています。
Redmineには、複数のプロジェクト、Wiki、問題追跡システム、フォーラム、カレンダー、電子メール通知などのサポートが含まれています。
このチュートリアルでは、MySQLをデータベースバックエンドとして使用し、Passenger + NginxをRubyアプリケーションサーバーとして使用して、Debian9サーバーに最新バージョンのRedmineをインストールして構成する方法を示します。
前提条件#
このチュートリアルを続行する前に、次の前提条件を満たしていることを確認してください。
- サーバーのパブリックIPを指すドメイン名を使用します。
example.com
を使用します 。 - sudo権限を持つユーザーとしてログインしました。
- Nginxをインストールしました。
- ドメインにSSL証明書をインストールします。
MySQLデータベースの作成#
Redmineは、MySQL / MariaDB、Microsoft SQL Server、SQLite 3、およびPostgreSQLをサポートしています。 MariaDBをデータベースのバックエンドとして使用します。マシンに少なくともMySQL5.7またはMariaDB10.3がインストールされていることを確認してください。
MariaDBまたはMySQLがDebianサーバーにインストールされていない場合は、次の手順を使用してインストールできます。
次のように入力して、MySQLコンソールにログインすることから始めます。
sudo mysql
次のSQLステートメントを実行して、新しいデータベースを作成します。
CREATE DATABASE redmine CHARACTER SET utf8mb4;
新しいMySQLユーザーアカウントを作成し、データベースへのアクセスを許可します:
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
change-with-strong-password
を変更することを忘れないでください 強力なパスワードを使用します。 完了したら、次のように入力してMariaDBコンソールからログアウトします。
EXIT;
Rubyのインストール#
DebianにRubyをインストールする最も簡単な方法は、apt
を使用することです。 パッケージマネージャー:
次のように入力してRubyをインストールします:
sudo apt install ruby-full
執筆時点では、Debianリポジトリのバージョンは2.3.3p222
です。 これは最新バージョンのRedmineでサポートされています。
RbenvまたはRVMを介してRubyをインストールする場合は、このチュートリアルにアクセスしてください。
PassengerとNginxのインストール#
Passengerisは、ApacheおよびNginxと統合できるRuby、Node.js、およびPython用の高速で軽量のWebアプリケーションサーバーです。 PassengerをNginxモジュールとしてインストールします。
次の手順に進む前に、Nginxがインストールされていることを確認してください。
httpsリポジトリを有効にするために必要なパッケージをインストールする:
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
リポジトリGPGキーをインポートし、Phusionpassengerrepositoryを有効にします:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'
パッケージリストを更新し、PassengerNginxモジュールを次のコマンドでインストールします:
sudo apt update
sudo apt install libnginx-mod-http-passenger
DebianへのRedmineのインストール#
Redmineのビルドに必要な依存関係をインストールすることから始めます:
sudo apt install build-essential libmariadbclient-dev imagemagick libmagickwand-dev curl ruby-dev libxslt-dev libxml2-dev zlib1g-dev
この記事を書いている時点で、Redmineの最新の安定バージョンはバージョン4.0.4です。
次のステップに進む前に、Redmineのダウンロードページで新しいバージョンを確認する必要があります。
1。 Redmineのダウンロード#
次のcurlコマンドを使用してRedmineアーカイブをダウンロードします。
sudo curl -L http://www.redmine.org/releases/redmine-4.0.4.tar.gz -o /tmp/redmine.tar.gz
ダウンロードが完了したら、アーカイブを抽出して/opt
に移動します ディレクトリ:
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.0.4 /opt/redmine
2。 Redmineデータベースの構成#
Redmineの設定例のファイルをコピーします:
sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
テキストエディタでファイルを開きます:
sudo nano /opt/redmine/config/database.yml
production
を検索します セクションをクリックして、以前に作成したMySQLデータベースとユーザー情報を入力します。
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8
完了したら、ファイルを保存してエディタを終了します。
3。 Ruby依存関係のインストール#
redmineディレクトリに移動し、bundlerおよびその他のRuby依存関係をインストールします:
cd /opt/redmine/
sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
4。キーの生成とデータベースの移行#
次のコマンドを実行してキーを生成し、データベースを移行します。
cd /opt/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate
5。正しい権限を設定する#
Nginxはwww-data
として実行されます ユーザーとグループ。次のchownコマンドを発行して、正しい権限を設定します。
sudo chown -R www-data: /opt/redmine/
Nginxを構成する#
このチュートリアルの前提条件を確認しない場合は、これまでに、SSL証明書を使用したNginxがシステムにインストールされているはずです。
テキストエディタを開き、次のNginxサーバーブロックファイルを作成します。
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com # Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /opt/redmine/public;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
example.comをRedmineドメインに置き換え、SSL証明書ファイルへの正しいパスを設定することを忘れないでください。すべてのHTTPリクエストはHTTPSにリダイレクトされます。この構成で使用されるスニペットは、このガイドで作成されます。
sites-enabled
へのシンボリックリンクを作成して、サーバーブロックを有効にします ディレクトリ:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Nginxサービスを再起動する前に、構文エラーがないことを確認するためのテストを行います。
sudo nginx -t
エラーがない場合、出力は次のようになります。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
最後に、次のように入力してNginxサービスを再起動します。
sudo systemctl restart nginx
ブラウザを開き、ドメインを入力すると、インストールが成功したと仮定して、次のような画面が表示されます。
Redmineのデフォルトのログインクレデンシャルは次のとおりです。
- ユーザー名:admin
- パスワード:admin
初めてログインするときは、次のようにパスワードを変更するように求められます。
パスワードを変更すると、ユーザーアカウントページにリダイレクトされます。