Redmine 설치하기
Redmine 은 오픈소스 프로젝트 매니지먼트 프로그램이다. Ruby 로 제작되었기 때문에 설치 과정에서 Ruby 가 있어야 한다. 웹을 통해서 서비스를 하기 때문에 보통 웹서버와 연동을 하는 편이다.
환경
- OS: CentOS 7
- Arch: x86_64
- Minimal Installation 상태
MariaDB 설치
MySQL 도 가능하지만, MariaDB 를 선택했다. 컴파일 설치가 가능하지만 패키지 설치로 설치한다.
1 |
]# yum install mariadb-server -y |
각종 의존성이 함께 설치가 된다.
my.cnf 파일을 다음과 같이 설정해 준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
]# vim /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd character-set-server = utf8 collation-server = utf8_general_ci port = 3306 skip-name-resolve [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d [mysql] default-character-set = utf8 no-auto-rehash show-warnings prompt=\u@\h:\d\_\R:\m:\\s> pager="less -n -i -F -X -E" |
다음과 같이 서버를 실행해 준다.
1 2 |
]# systemctl start mariadb.service ]# systemctl enable mariadb.service |
이제 기본적인 설정을 위해 mysql_secure_installation 을 실행해 준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): <- 그냥 엔터 OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! ]# |
root 패스워드를 설정하기 때문에 패스워드을 잃어서는 안된다.
이제 redmine 에서 사용할 계정을 생성해 준다.
1 2 3 4 5 6 7 8 9 10 |
> use mysql; Database changed > CREATE DATABASE redmine CHARACTER SET utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec) > CREATE USER 'redmine'@'%' IDENTIFIED BY 'HS79aB'; Query OK, 0 rows affected (0.00 sec) > GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'%'; Query OK, 0 rows affected (0.00 sec) > FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) |
이로서 redmine 설치를 위한 Mariadb 설치 설정은 모두 끝났다.
Redmine 설치
Redmine 4.2 버전을 설치하기 위해서는 다음과 같은 의존성이 필요하다.
- Ruby – 4.2
- Rails – 5.2
CentOS 7 에 Ruby 2.0 만을 패키지로 지원한다. 컴파일 설치를 해야한다.
컴파일을 위한 환경 구축
컴파일러와 라이브러리들을 함께 설치해 준다.
1 2 |
]# yum -y install libxslt-devel libyaml-devel libxml2-devel gdbm-devel libffi-devel zlib-devel openssl-devel libyaml-devel readline-devel curl-devel openssl-devel pcre-devel git memcached-devel valgrind-devel mysql-devel ImageMagick-devel ImageMagick ]# yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool bzip2 iconv-devel glibc-headers glibc-devel |
Passenger 와 Nginx 설치
Passenger 는 가벼운 웹 애플리케이션 서버로 Ruby 를 지원한다. 이것을 Nginx 와 통합시켜줄 것이다. 다음과 같이 epel 저장소를 활성화 해준다.
1 2 3 |
]# yum install -y epel-release yum-utils ]# yum-config-manager --enable epel ]# yum clean all && sudo yum update -y |
이제 Passenger 설치를 위한 저장소를 추가 준다.
1 2 3 4 |
]# yum install -y pygpgme curl ]# curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo ]# yum install -y nginx passenger nginx-mod-http-passenger ]# |
redmine 시스템 계정 생성
다음과 같이 redmine 을 위한 시스템 계정을 생성해 준다.
1 2 3 |
]# useradd -m -U -r -d /opt/redmine redmine\ ]# usermod -a -G redmine nginx ]# chmod 750 /opt/redmine |
RVM 을 이용한 Ruby 설치를 할 것이기 때문에 GPG 키를 먼저 임포트 해준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
]$ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB gpg: directory `/opt/redmine/.gnupg' created gpg: new configuration file `/opt/redmine/.gnupg/gpg.conf' created gpg: WARNING: options in `/opt/redmine/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/opt/redmine/.gnupg/secring.gpg' created gpg: keyring `/opt/redmine/.gnupg/pubring.gpg' created gpg: requesting key D39DC0E3 from hkp server pool.sks-keyservers.net gpg: requesting key 39499BDB from hkp server pool.sks-keyservers.net gpg: /opt/redmine/.gnupg/trustdb.gpg: trustdb created gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported gpg: key 39499BDB: public key "Piotr Kuczynski <piotr.kuczynski@gmail.com>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 2 gpg: imported: 2 (RSA: 2) </piotr.kuczynski@gmail.com></mpapis@gmail.com> |
다음과 같이 RVM 을 설치 해준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
]$ curl -sSL https://get.rvm.io | bash -s stable Downloading https://github.com/rvm/rvm/archive/1.29.12.tar.gz Downloading https://github.com/rvm/rvm/releases/download/1.29.12/1.29.12.tar.gz.asc gpg: Signature made 2021년 01월 16일 (토) using RSA key ID 39499BDB gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB GPG verified '/opt/redmine/.rvm/archives/rvm-1.29.12.tgz' Installing RVM to /opt/redmine/.rvm/ Adding rvm PATH line to /opt/redmine/.profile /opt/redmine/.mkshrc /opt/redmine/.bashrc /opt/redmine/.zshrc. Adding rvm loading line to /opt/redmine/.profile /opt/redmine/.bash_profile /opt/redmine/.zlogin. Installation of RVM in /opt/redmine/.rvm/ is almost complete: * To start using RVM you need to run `source /opt/redmine/.rvm/scripts/rvm` in all your open shell windows, in rare cases you need to reopen all shell windows. Thanks for installing RVM 🙏 Please consider donating to our open collective to help us maintain RVM. 👉 Donate: https://opencollective.com/rvm/donate ]$ source /opt/redmine/.rvm/scripts/rvm |
마지막에 source 부분을 반드시 해준다. Ruby 2.7 을 설치해 준다.
1 2 |
]$ rvm install 2.7 ]$ rvm --default use 2.7 |
mysql2 extension 을 다음과 같이 설치해 준다.
1 2 3 4 5 6 7 8 |
/opt/redmine/.rvm/rubies/ruby-2.7.2/bin/gem install mysql2 Fetching mysql2-0.5.3.gem Building native extensions. This could take a while... Successfully installed mysql2-0.5.3 Parsing documentation for mysql2-0.5.3 Installing ri documentation for mysql2-0.5.3 Done installing documentation for mysql2 after 0 seconds 1 gem installed |
이제 Redmine 을 설치해 준다.
1 2 |
]$ curl -LO https://www.redmine.org/releases/redmine-4.2.1.tar.gz ]$ tar xvzf redmine-4.2.1.tar.gz |
다음과 같이 데이베이스 접속 정보를 수정해 준다.
1 2 3 4 5 6 7 8 9 10 |
]$ cp /opt/redmine/redmine-4.2.1/config/database.yml.example /opt/redmine/redmine-4.2.1/config/database.yml ]$ vi /opt/redmine/redmine-4.2.1/config/database.yml production: adapter: mysql2 database: redmine host: localhost username: redmine password: "" # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8 |
Redmine 의존성을 설치해 준다.
1 2 |
]$ /opt/redmine/.rvm/rubies/ruby-2.7.2/bin/gem install bundler ]$ bundle install --without development test postgresql sqlite |
키를 생성하고 데이터베이스를 생성해 준다.
1 2 3 4 5 6 7 8 |
$ bundle exec rake generate_secret_token $ RAILS_ENV=production bundle exec rake db:migrate $ 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] Unknown language! 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] ko ==================================== Default configuration data loaded. |
Nginx 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby; passenger_instance_registry_dir /var/run/passenger-instreg; server { listen 80; server_name 192.168.96.8; root /opt/redmine/redmine-4.2.1/public; # 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; } |