【Linux】【Redmine】Redmine 3.3 の導入【SW】

職場では多分に漏れず Redmine を導入しており、検討用として自宅でRedmineが動かせる状態にしてみる。

インストール手順

こちらのサイト様の手順に従いインストールをした。
 

1. 言語が日本語になっていることを確認する。

# echo $LANG
ja_JP.UTF-8

 

2. 依存パッケージをインストールする。

データベースは MySQL にした。

% sudo apt-get install ruby-dev ruby bundler
% sudo apt-get install apache2 libapache2-mod-passenger
% sudo apt-get install imagemagick libmagick++-dev
% sudo apt-get install git subversion

 

3. MySQL に Redmine 用のデータベースを作成する

下記の /etc/mysql/conf.d/redmine.cnf を作成して、「service mysql restart」を実行して MySQL を再起動させる。

/etc/mysql/conf.d/redmine.cnf

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix
character-set-server = utf8mb4
skip-character-set-client-handshake
collation-server = utf8mb4_general_ci
init-connect = SET NAMES utf8mb4
 
[mysql]
default-character-set = utf8mb4
 
[client]
default-character-set = utf8mb4
 
[mysqldump]
default-character-set = utf8mb4

MySQLを再起動させる。

% sudo service mysql restart

Redmine用のデータベースを作る。
スタンドアロンマシンでの運用なので、アカウント neko、初期パスワードは neko でユーザを作る。

% sudo mysql -u root -p
mysql> CREATE DATABASE db CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER 'neko'@'localhost' IDENTIFIED BY 'neko';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON db.* TO 'neko'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

 

4. Redmine のインストール

/var/www/redmine に redmine3.3安定版をインストールする。

% sudo mkdir /var/www/redmine
% sudo ls -ltr /var/www/redmine
合計 100
drwxr-xr-x 14 root root  4096 1021 09:17 git
drwxr-xr-x 14 root root  4096 1021 09:17 html
drwxr-xr-x  2 root root  4096 1021 11:55 redmine

% sudo -u neko svn co http://svn.redmine.org/redmine/branches/3.3-stable /var/www/redmine

 


5. Redmine の設定

以下のファイルを作る。なお、メールサーバは運用していないので Gmail と紐付ける。

  • /var/www/redmine/config/database.yml
  • /var/www/redmine/config/configuration.yml
  • /var/www/redmine/config/initializers/utf8mb4.rb

/var/www/redmine/config/database.yml

production:
  adapter: mysql2
  host: localhost
# Redmine用のMySQLデータベース名 
  database: db
# Redmine用のMySQLユーザ名
  username: user
# Redmine用のMySQLパスワード
  password: your_db_password
  encoding: utf8mb4
  socket: /var/run/mysqld/mysqld.sock

メールサーバは動かしていないので, Gmail を使うようにした。
/var/www/redmine/config/configuration.yml

default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "neko@gmail.com"
      password: "パスワード"

/var/www/redmine/config/initializers/utf8mb4.rb

ActiveSupport.on_load :active_record do
  module ActiveRecord::ConnectionAdapters
 
    class AbstractMysqlAdapter
      def create_table_with_innodb_row_format(table_name, options = {})
        table_options = options.merge(:options => 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC')
        create_table_without_innodb_row_format(table_name, table_options) do |td|
          yield td if block_given?
        end
      end
      alias_method_chain :create_table, :innodb_row_format
    end
 
  end
end

 

6. Redmine の初期設定

/var/www/redmine 以下を所有権 neko に変える。(nekoアカウントは id -a neko で調べられる)

% sudo cd /var/www/redmine/
% id neko
uid=1000(neko) gid=1000(neko) groups=1000(neko),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),121(lpadmin),132(sambashare),135(libvirt)
% sudo chown -R neko:neko .

Redmine の依存ライブラリをインストールする。

% sudo -u neko bundle install -j$(nproc) --without development test postgresql sqlite --path vendor/bundle
Could not locate Gemfile or .bundle/ directory

Gemfile ディレクトリがあるパスに移動する。

% find / -name Gemfile
略
/var/www/redmine/Gemfile
% cd /var/www/redmine
% sudo -u neko bundle install -j$(nproc) --without development test postgresql sqlite --path vendor/bundle
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies...
Installing rake 12.1.0
Installing i18n 0.7.0
Installing json 1.8.6 with native extensions
Installing minitest 5.10.3
Installing thread_safe 0.3.6
Installing builder 3.2.3
Installing erubis 2.7.0
Installing mini_portile2 2.1.0
Installing crass 1.0.2
Installing rack 1.6.8
Installing mime-types-data 3.2016.0521
Installing arel 6.0.4
Installing public_suffix 3.0.0
Using bundler 1.13.6
Installing coderay 1.1.2
Installing concurrent-ruby 1.0.5
Installing htmlentities 4.3.4
Installing thor 0.20.0
Installing mimemagic 0.3.2
Installing mysql2 0.4.9 with native extensions
Installing net-ldap 0.12.1
Installing ruby-openid 2.3.0
Installing rbpdf-font 1.19.1
Installing redcarpet 3.3.4 with native extensions
Installing request_store 1.0.5
Installing rmagick 2.16.0 with native extensions
Installing tzinfo 1.2.3
Installing nokogiri 1.7.2 with native extensions
Installing rack-test 0.6.3
Installing mime-types 3.1
Installing addressable 2.5.2
Installing sprockets 3.7.1
Installing rack-openid 1.4.2
Installing rbpdf 1.19.3
Installing activesupport 4.2.7.1
Installing loofah 2.1.1
Installing mail 2.6.6
Installing css_parser 1.6.0
Installing rails-deprecated_sanitizer 1.0.3
Installing globalid 0.4.0
Installing activemodel 4.2.7.1
Installing rails-html-sanitizer 1.0.3
Installing roadie 3.2.2
Installing rails-dom-testing 1.0.8
Installing activejob 4.2.7.1
Installing activerecord 4.2.7.1
Installing protected_attributes 1.1.4
Installing actionview 4.2.7.1
Installing actionpack 4.2.7.1
Installing actionmailer 4.2.7.1
Installing actionpack-action_caching 1.2.0
Installing actionpack-xml_parser 1.0.2
Installing railties 4.2.7.1
Installing sprockets-rails 3.2.1
Installing jquery-rails 3.1.4
Installing roadie-rails 1.1.1
Installing rails 4.2.7.1
Bundle complete! 33 Gemfile dependencies, 57 gems now installed.
Gems in the groups development, test, postgresql and sqlite were not installed.
Bundled gems are installed into ./vendor/bundle.

シークレットトークンを作成して、テーブルを作成して、デフォルトのデータを読み込む。

% sudo -u neko bundle exec rake generate_secret_token
% sudo -u neko RAILS_ENV=production bundle exec rake db:migrate

 

7. Redmine を「http://localhost/redmine」として公開する。

  • 「/etc/apache2/mods-available/passenger.conf」に次の2点を追記する。
    • 「PassengerPreStart http://127.0.0.1/」を4行目に追加する。
    • 7行目以降の内容「VirtualHost *:80>〜」を追加する。
% sudo ln -s /var/www/redmine/public /var/www/html/redmine

/etc/apache2/mods-available/passenger.conf

<IfModule mod_passenger.c>
  PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby
  PassengerPreStart http://127.0.0.1/
</IfModule>

<VirtualHost *:80>
    ServerName redmine.example.jp
 
    ServerAdmin redmine@example.jp
#   public/ディレクトリを指定する事に注意
    DocumentRoot /var/www/redmine/public
 
#   他のモジュールとの互換性を犠牲にPassengerの性能を底上げするオプションです。
#   Directoryの中に移動させるとなぜか404になります。
    PassengerHighPerformance on
    <Directory /var/www/redmine/public>
#       アクセス制限を掛けておくと安全!!
        Require ip ::1 127. 192.168.
#       .htaccessなどは利用しない方が(ほんの少しだけ)高性能になります。
        AllowOverride None
        Options None
    </Directory>
 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

8. apache を再起動させる

# sudo service apache2 restart

 

9. Redmine にアクセスしてみる

  • 初期ユーザはユーザ名「admin」パスワード「admin」でログイン可能。

f:id:dnkrnka:20171021133700p:plain