Redmineインストール練習
今更ながらRedmineを使うことになったので、手元で弄れる環境を作ってみた。というかそもそもRailsわかってない。
- Rubyのバージョン確認
(root)MacBook-Air-2:redmine foo$ ruby -v ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
- MySQLのバージョン確認
(root)MacBook-Air-2:redmine foo$ mysql --version mysql Ver 14.14 Distrib 5.7.16, for osx10.10 (x86_64) using EditLine wrapper
- MySQLのrootユーザのパスワードを忘れたので再設定
(root)MacBook-Air-2:redmine foo$ mysql.server stop Shutting down MySQL .. SUCCESS! (root)MacBook-Air-2:redmine foo$ mysqld_safe --skip-grant-tables & [1] 25012 (root)MacBook-Air-2:redmine foo$ 2016-01-01T11:13:30.6NZ mysqld_safe Logging to '/usr/local/var/mysql/MacBook-Air-2.local.err'. 2016-01-01T11:13:30.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql (root)MacBook-Air-2:redmine foo$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.16 Homebrew Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> UPDATE user SET authentication_string=password('root') WHERE user='root'; Query OK, 1 row affected, 1 warning (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye
- Redmine用のデータベース用意
(root)MacBook-Air-2:redmine foo$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.7.16 Homebrew Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database redmine character set utf8; Query OK, 1 row affected (0.01 sec) mysql> create user 'redmine'@'localhost' identified by 'my_password'; Query OK, 0 rows affected (0.02 sec) mysql> grant all privileges on redmine.* to 'redmine'@'localhost'; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye
- Redmineのソース取得 (gitから取ってくればよかった、、、。)
(root)MacBook-Air-2:redmine foo$ svn checkout http://svn.redmine.org/redmine/branches/3.3-stable redmine A redmine/test A redmine/test/unit A redmine/test/unit/document_test.rb A redmine/test/unit/issue_import_test.rb A redmine/test/unit/repository_git_test.rb A redmine/test/unit/version_test.rb A redmine/test/unit/project_members_inheritance_test.rb A redmine/test/unit/attachment_transaction_test.rb 途中省略 A redmine/public/stylesheets/rtl.css A redmine/public/stylesheets/scm.css A redmine/public/stylesheets/application.css A redmine/public/favicon.ico A redmine/public/htaccess.fcgi.example U redmine Checked out revision 16052.
- Redmineアプリケーションフォルダに移動
(root)MacBook-Air-2:redmine foo$ cd redmine/ (root)MacBook-Air-2:redmine foo$ ls CONTRIBUTING.md README.rdoc app bin config.ru doc files log public test vendor Gemfile Rakefile appveyor.yml config db extra lib plugins script tmp
- データベースファイルを作成
(root)MacBook-Air-2:redmine foo$ vim ./config/ additional_environment.rb.example configuration.yml.example environments/ routes.rb application.rb database.yml.example initializers/ settings.yml boot.rb environment.rb locales/ (root)MacBook-Air-2:redmine foo$ cp ./config/database.yml.example ./config/database.yml
- データベース設定に、データベース名、ユーザ名、パスワードを設定する
1 # Default setup is given for MySQL with ruby1.9. 2 # Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end. 3 # Line indentation must be 2 spaces (no tabs). 4 5 production: 6 adapter: mysql2 7 database: redmine 8 host: localhost 9 username: redmine 10 password: my_password 11 encoding: utf8 12 13 development: 14 adapter: mysql2 15 database: redmine_development 16 host: localhost 17 username: redmine 18 password: my_password 19 encoding: utf8 20 21 # Warning: The database defined as "test" will be erased and 22 # re-generated from your development database when you run "rake". 23 # Do not set this db to the same as development or production. 24 test: 25 adapter: mysql2 26 database: redmine_test 27 host: localhost 28 username: my_password 29 password: my_password 30 encoding: utf8
- bundlerをインストール (意味がわかってない、後で調べる)
(root)MacBook-Air-2:redmine foo$ gem install bundler Fetching: bundler-1.13.6.gem (100%) ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory. (root)MacBook-Air-2:redmine foo$ sudo gem install bundler Password: Fetching: bundler-1.13.6.gem (100%) Successfully installed bundler-1.13.6 Parsing documentation for bundler-1.13.6 Installing ri documentation for bundler-1.13.6 1 gem installed
(root)MacBook-Air-2:redmine foo$ bundle install --without development test rmagick Fetching gem metadata from https://rubygems.org/.......... Fetching version metadata from https://rubygems.org/.. Fetching dependency metadata from https://rubygems.org/. Resolving dependencies..... Rubygems 2.0.14 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation. Using rake 12.0.0 Using i18n 0.7.0 Using json 1.8.3 Using minitest 5.10.1 Using thread_safe 0.3.5 Using builder 3.2.2 Using erubis 2.7.0 Using mini_portile2 2.1.0 Using rack 1.6.5 Using mime-types-data 3.2016.0521 Using arel 6.0.3 Using public_suffix 2.0.4 Using bundler 1.13.6 Using coderay 1.1.1 Using concurrent-ruby 1.0.2 Using htmlentities 4.3.1 Using thor 0.19.4 Using mimemagic 0.3.2 Using mysql2 0.3.21 Using net-ldap 0.12.1 Using ruby-openid 2.3.0 Using rbpdf-font 1.19.0 Using redcarpet 3.3.4 Using request_store 1.0.5 Using tzinfo 1.2.2 Using nokogiri 1.6.8.1 Using rack-test 0.6.3 Using mime-types 3.1 Using addressable 2.5.0 Using sprockets 3.7.0 Using rack-openid 1.4.2 Using rbpdf 1.19.0 Installing activesupport 4.2.7.1 Installing loofah 2.0.3 Installing mail 2.6.4 Installing css_parser 1.4.7 Installing rails-deprecated_sanitizer 1.0.3 Installing globalid 0.3.7 Installing activemodel 4.2.7.1 Installing rails-html-sanitizer 1.0.3 Installing roadie 3.2.0 Installing rails-dom-testing 1.0.7 Installing activejob 4.2.7.1 Installing activerecord 4.2.7.1 Installing protected_attributes 1.1.3 Installing actionview 4.2.7.1 Installing actionpack 4.2.7.1 Installing actionmailer 4.2.7.1 Installing actionpack-action_caching 1.1.1 Installing actionpack-xml_parser 1.0.2 Installing railties 4.2.7.1 Installing sprockets-rails 3.2.0 Installing jquery-rails 3.1.4 Installing roadie-rails 1.1.1 Installing rails 4.2.7.1 Bundle complete! 31 Gemfile dependencies, 55 gems now installed. Gems in the groups development, test and rmagick were not installed. Use `bundle show [gemname]` to see where a bundled gem is installed.
- セキュリティトークン作成 (意味がわかってないので後で調べる)
(root)MacBook-Air-2:redmine foo$ bundle exec rake generate_secret_token
- データベーススキーマ作成
(root)MacBook-Air-2:redmine foo$ RAILS_ENV=production bundle exec rake db:migrate == 1 Setup: migrating ========================================================= -- create_table("attachments", {:force=>true}) -> 0.0133s -- create_table("auth_sources", {:force=>true}) -> 0.0135s -- create_table("custom_fields", {:force=>true}) -> 0.0123s -- create_table("custom_fields_projects", {:id=>false, :force=>true}) 途中省略 == 20160416072926 RemovePositionDefaults: migrating =========================== -- change_column("boards", :position, :integer, {:default=>nil}) -> 0.0095s -- change_column("custom_fields", :position, :integer, {:default=>nil}) -> 0.0133s -- change_column("enumerations", :position, :integer, {:default=>nil}) -> 0.0107s -- change_column("issue_statuses", :position, :integer, {:default=>nil}) -> 0.0082s -- change_column("roles", :position, :integer, {:default=>nil}) -> 0.0084s -- change_column("trackers", :position, :integer, {:default=>nil}) -> 0.0091s == 20160416072926 RemovePositionDefaults: migrated (0.0601s) ================== == 20160529063352 AddRolesSettings: migrating ================================= -- add_column(:roles, :settings, :text) -> 0.0430s == 20160529063352 AddRolesSettings: migrated (0.0432s) ========================
- 初期データ作成
(root)MacBook-Air-2:redmine foo$ RAILS_ENV=production bundle exec rake redmine:load_default_data Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja ==================================== Default configuration data loaded.
- WEBrickで起動
(root)MacBook-Air-2:redmine foo$ bundle exec rails server webrick -e production => Booting WEBrick => Rails 4.2.7.1 application starting in production on http://localhost:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2016-01-01 20:55:35] INFO WEBrick 1.3.1 [2016-01-01 20:55:35] INFO ruby 2.0.0 (2014-05-08) [universal.x86_64-darwin14] [2016-01-01 20:55:35] INFO WEBrick::HTTPServer#start: pid=44346 port=3000
- admin / admin でログインすると、パスワード変更を要求される。
- データベーステーブル一覧
mysql> show tables; +-------------------------------------+ | Tables_in_redmine | +-------------------------------------+ | attachments | | auth_sources | | boards | | changes | | changeset_parents | | changesets | | changesets_issues | | comments | | custom_field_enumerations | | custom_fields | | custom_fields_projects | | custom_fields_roles | | custom_fields_trackers | | custom_values | | documents | | email_addresses | | enabled_modules | | enumerations | | groups_users | | import_items | | imports | | issue_categories | | issue_relations | | issue_statuses | | issues | | journal_details | | journals | | member_roles | | members | | messages | | news | | open_id_authentication_associations | | open_id_authentication_nonces | | projects | | projects_trackers | | queries | | queries_roles | | repositories | | roles | | roles_managed_roles | | schema_migrations | | settings | | time_entries | | tokens | | trackers | | user_preferences | | users | | versions | | watchers | | wiki_content_versions | | wiki_contents | | wiki_pages | | wiki_redirects | | wikis | | workflows | +-------------------------------------+ 55 rows in set (0.00 sec) mysql>
- データの状況
mysql> select table_name, table_rows from information_schema.tables where table_schema = 'redmine' order by 2 desc; +-------------------------------------+------------+ | table_name | table_rows | +-------------------------------------+------------+ | schema_migrations | 268 | | workflows | 144 | | enumerations | 9 | | issue_statuses | 6 | | roles | 5 | | users | 4 | | trackers | 3 | | email_addresses | 1 | | tokens | 1 | | user_preferences | 1 | | custom_fields_trackers | 0 | | journals | 0 |
- ユーザデータ
mysql> select id, login, hashed_password, firstname, lastname, admin, status, last_login_on from users; +----+-------+------------------------------------------+-----------+------------------+-------+--------+---------------------+ | id | login | hashed_password | firstname | lastname | admin | status | last_login_on | +----+-------+------------------------------------------+-----------+------------------+-------+--------+---------------------+ | 1 | admin | a99fe2fb647cb2a5e059e095c93d2ccc0588f76d | Redmine | Admin | 1 | 1 | 2016-12-07 21:38:41 | | 2 | | | | Anonymous users | 0 | 1 | NULL | | 3 | | | | Non member users | 0 | 1 | NULL | | 4 | | | | Anonymous | 0 | 0 | NULL | +----+-------+------------------------------------------+-----------+------------------+-------+--------+---------------------+ 4 rows in set (0.00 sec)
- ロールのpermissionはtext属性になっている。
mysql> select permissions from roles where id = 3; | permissions - :add_project - :edit_project - :close_project - :select_project_modules - :manage_members - :manage_versions - :add_subprojects - :view_issues - :add_issues - :edit_issues - :copy_issues - :manage_issue_relations - :manage_subtasks - :set_issues_private - :set_own_issues_private - :add_issue_notes - :edit_issue_notes - :edit_own_issue_notes - :view_private_notes - :set_notes_private - :delete_issues - :manage_public_queries - :save_queries - :view_issue_watchers - :add_issue_watchers - :delete_issue_watchers - :import_issues - :manage_categories - :view_time_entries - :log_time - :edit_time_entries - :edit_own_time_entries - :manage_project_activities - :manage_news - :comment_news - :view_documents - :add_documents - :edit_documents - :delete_documents - :view_files - :manage_files - :view_wiki_pages - :view_wiki_edits - :export_wiki_pages - :edit_wiki_pages - :rename_wiki_pages - :delete_wiki_pages - :delete_wiki_pages_attachments - :protect_wiki_pages - :manage_wiki - :view_changesets - :browse_repository - :commit_access - :manage_related_issues - :manage_repository - :add_messages - :edit_messages - :edit_own_messages - :delete_messages - :delete_own_messages - :manage_boards - :view_calendar - :view_gantt | 1 row in set (0.00 sec) mysql>