2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ubuntu Server 18.04LTSにRedmine3.4をインストールする

Last updated at Posted at 2019-04-07

はじめに

本記事の目的

  • nginxのWebサーバを、letsencryptの証明書でSSL化し、Redmineをインストールするまでを解説する。
  • Redmineではチケットの登録時などにメール通知をする機能があるので、メールサーバの構築も行う。

前提環境

  • Ubuntu Server 18.04.2 LTS
  • Redmine 3.4.10
  • Nginx
  • サーバ名は www.hoge.net とする。
  • Let's Encryptのサーバ証明書

その1:httpサーバを立てる

サーバ証明書の取得(Let's Encrypt)

まずNginxのインストールだけ行う。

$ sudo apt-get install nginx

Let's Encryptのパッケージをインストールする。

$ sudo apt-get install letsencrypt

これで、証明書の更新を自動でやってくれるcertbotなどが一式インストールされる。

$ sudo letsencrypt certonly --standalone -d www.hoge.net

メールアドレスの入力や利用規約への同意確認を求められる。
これだけで自動的に証明書の発行、取得、指定ディレクトリへの格納が行われる。
なお、/etc/crond.d内にも自動的にcertbotファイルが作成され、証明書の更新のcron化までやってくれる。

証明書が格納される指定ディレクトリは以下。

証明書:/etc/letsencrypt/live/www.hoge.net/fullchain.pem
キー :/etc/letsencrypt/live/www.hoge.net/privkey.pem

nginxの基本設定

/etc/nginx/sites-available/default の該当箇所のみ。

server {
	listen *:443 ssl default_server;
	server_name www.hoge.net;
	ssl on;
    ssl_certificate /etc/letsencrypt/live/www.hoge.net/fullchain.pem; # manag
ed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.hoge.net/privkey.pem; # man
aged by Certbot
	charset	utf-8;

	root /var/www/html;
	# Add index.php to the list if you are usin PHP
	index index.html index.htm index.nginx-debian.html;

	location / {
		try_files $uri $uri/ =404;
	}

}

ついでに、80番ポートへのアクセス時に、自動的に443へリダイレクトする設定は、certbotインストール時に自動的に追記されたので、参考に記載しておく。

server {
    if ($host = www.hoge.net) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
}

その2:メールサーバを立てる

Ubuntuの公式ドキュメントに沿って実行する。
https://help.ubuntu.com/lts/serverguide/postfix.html.ja

メールサーバのホスト名を、mail.hoge.netのようにhttpサーバと異なる名称にしているため、
SSL証明書は改めて取得する。

$ sudo letsencrypt certonly --standalone -d mail.hoge.net

その3:Redmineをインストールする

前提

基本的にはRedmineの公式ドキュメントに沿ってインストールするが、Ubuntuのバージョン、およびApacheではなくNginxを利用するため、差分を中心に記載する。

参照URL:http://blog.redmine.jp/articles/3_4/install/ubuntu/

ソフトウェア バージョン
Redmine 3.4.10
OS Ubuntu Server 18.04.2 LTS
データベース PostgreSQL 10.7
Webサーバ Nginx 1.14.0 (Railsの実行にはPassengerを使用)
Ruby 2.6.2p47

パッケージインストール

PostgreSQLがバージョン10となるため、PostgreSQLのインストールで差分がある。
また個人的にsubversionは今回使用しないため、インストールしない。なおgitはUbuntuにデフォルトでインストールがされている。
以下の順に実施。

$ sudo locale-gen ja_JP.UTF-8
$ sudo apt-get update
$ sudo apt-get install -y build-essential zlib1g-dev libssl-dev libreadline-dev  libyaml-dev libcurl4-openssl-dev libffi-dev
$ sudo apt-get install -y postgresql postgresql-server-dev-10
$ sudo apt-get install -y imagemagick libmagick++-dev fonts-takao-pgothic

Rubyのインストール

2019年4月現在の最新バージョンをダウンロードする。
公式ドキュメントとバージョンが異なるが、同じ手順で問題ない。

$ curl -O https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.2.tar.gz
$ tar zxf ruby-2.6.2.tar.gz
$ cd ruby-2.6.2
$ ./configure --disable-install-doc
$ make
$ sudo make install
$ ruby -v

Bundlerもインストールする。

$ sudo gem install bundler --no-rdoc --no-ri

PostgreSQLの設定

公式ドキュメントとバージョンが異なるが、同じ手順で問題ない。

$ sudo -u postgres createuser -P redmine
$ sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine
~~~


## Redmineのインストール
svnは使わずにインストールする。

```sh
$ curl -O http://www.redmine.org/releases/redmine-3.4.10.tar.gz
$ sudo tar zxf redmine-3.4.10.tar.gz /var/lib
$ cd /var/lib
$ sudo mv redmine-3.4.10 redmine
$ sudo chown -R www-data.www-data redmine

データベースへの接続設定

公式ドキュメントと同様。

database.yml
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "********"
  encoding: utf8

設定ファイル config/configuration.yml の作成

config/configuration.yml.sample をコピーして利用してOK。production の箇所を見つけて追記する。
メールサーバ等は適宜変更すること。

configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "mail.hoge.net"
      port: 25
      domain: "hoge.net"

  rmagick_font_path: /usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf

gemパッケージのインストール

公式ドキュメント通り。

$ cd /var/lib/redmine
$ sudo -u www-data bundle install --without development test --path vendor/bundle

Redmineの初期設定と初期データ登録

ここも公式ドキュメント通り。

$ sudo -u www-data bundle exec rake generate_secret_token
$ sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
$ sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Passengerのインストール

ここはnginxのため公式ドキュメントとは異なる。
Passengerをインストールするところは公式ドキュメントと同様。

$ sudo gem install passenger

PassengerのNginx用モジュールのインストール

$ cd /usr/local/bin
$ sudo ./passenger-install-nginx-module

ここから以下のURLを参考にNginx用ライブラリをインストールする。
https://www.phusionpassenger.com/library/install/nginx/install/oss/bionic/

Step.1 install Passenger packages

# Install our PGP key and add HTTPS support for APT
$ sudo apt-get install -y dirmngr gnupg
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $ 561F9B9CAC40B2F7
$ sudo apt-get install -y apt-transport-https ca-certificates

# Add our APT repository
$ sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main > /etc/apt/sources.list.d/passenger.list'
$ sudo apt-get update

# Install Passenger + Nginx module
$sudo apt-get install -y libnginx-mod-http-passenger

Step.2 enable the Passenger Nginx module and restart Nginx

configファイルが正常に作成されたか確認する。
ちなみに以下は実施しなくても正常に作成されていたので、ファイルが存在していれば気にしなくていい。

$ if [ ! -f /etc/nginx/modules-enabled/50-mod-http-passenger.conf ]; then sudo ln -s /usr/share/nginx/modules-available/mod-http-passenger.load /etc/nginx/modules-enabled/50-mod-http-passenger.conf ; fi
$ sudo ls /etc/nginx/conf.d/mod-http-passenger.conf

Nginxをリロードする。

$ sudo service nginx restart

Step.3 check installation

念の為インストールの正常性を確認しておく。

$ sudo /usr/bin/passenger-config validate-install
$ sudo /usr/sbin/passenger-memory-stats

Nginxの設定

Redmineを公開するURLを、https://www.hoge.net/redmine とするための設定。
その1で作成したNginxのコンフィグ内、serverディレクティブに以下を追記する

server {
        # 省略 listen ~ locatioin / {} まで。

        location ~ ^/redmine {
                root /var/lib/redmine/public;
                passenger_base_uri /redmine;
                passenger_app_root /var/lib/redmine;
                passenger_enabled on;
                rails_env production;
        }
}

これで443ポートで公開される。

以上。

おまけ

ハマったところ

Postfixの設定で、外部から送信されたメールを受信することができなかった。
具体的には、Gmailから、@hoge.net 宛のメールが届かなかったということ。逆はできていた。
原因は、smtpsポートは開いていたがsmtpポートは閉じていたのが原因だった。
これで半日潰れてしまった・・・。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?