How to Install and Configure Redmine on CentOS 7


  • You must have Alibaba Cloud Elastic Compute Service (ECS) activated and verified your valid payment method. If you are a new user, you can get a free account in your Alibaba Cloud account. If you don’t know about how to setup your ECS instance, you can refer to this tutorial or quick-start guide. Your ECS instance must have at least 2GB RAM and 1 Core processor.
  • A domain name registered from Alibaba Cloud. If you have already registered a domain from Alibaba Cloud or any other host, you can update its domain nameserver records.
  • Domain name must be pointed to your Alibaba Cloud ECS’s IP address
  • Server’s hostname is set up.
  • Access to VNC console in your Alibaba Cloud or SSH client installed in your PC

Setting Up Your Alibaba Cloud ECS Instance

Basic Installations

Install Apache

# sudo yum install httpd-devel

Install MySQL

# sudo yum install mysql-devel

Install curl-devel

# sudo yum install curl-devel

Install Unzip

# sudo yum install unzip

Install Ruby

# curl -sSL | bash -s stable
# gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# curl -sSL | bash -s stable
# source /home/aareez/.rvm/scripts/rvm
#  rvm install 2.4
# ruby -v

Install RubyGems

# sudo yum install rubygems

Install Phusion Passenger

# gem install passenger

Set Up Permissions for Phusion Passenger

# sudo chmod o+x "/home/aareez"

Install Phusion Passenger Apache 2 Module

# passenger-install-apache2-module

Configure Phusion Apache

# sudo nano /etc/httpd/conf.modules.d/00-base.conf
LoadModule passenger_module /home/aareez/.rvm/gems/ruby-2.4.1/gems/passenger-5.3.1/buildout/apache2/
# sudo nano /etc/httpd/conf/httpd.conf
<IfModule mod_passenger.c>
PassengerRoot /home/aareez/.rvm/gems/ruby-2.2.2/gems/passenger-5.3.1
PassengerDefaultRuby /home/aareez/.rvm/gems/ruby-2.2.2/wrappers/ruby
# sudo service httpd restart

Install MariaDB

# sudo yum install mariadb-server
# sudo systemctl start mariadb
# sudo systemctl enable mariadb
# sudo mysql_secure_installation

Create Database for Redmine

# mysql -u root -p
create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'your-password-here';
grant all privileges on redmine.* to 'redmine'@'localhost';

Install Redmine

# wget
# unzip
# sudo cp -av redmine-3.4.5/* /var/www/html
# cd /var/www/html/config
# sudo cp database.yml.example database.yml
# sudo nano database.yml

Configure Rails

# sudo chown -R aareez:aareez /var/www/html

Installing ImageMagick and ImageMagick-devel

# sudo yum -y install ImageMagick ImageMagick-devel

Installing rmagick

# gem install rmagick

Installing bundler

# gem install bundler
# sudo nano /var/www/html/Gemfile
# file: /var/www/html/Gemfile
source ""
gem "rake", "12.3.1"
gem "rack", "1.6.0"
gem "rubytree", "0.5.2", :require => "tree"
gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay
# cd /var/www/html
# bundle install
# bundle update

Set Up the Environment

# RAILS_ENV=production bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate
# RAILS_ENV=production bundle exec rake redmine:load_default_data
# cd /var/www/html/public
# mv htaccess.fcgi.example .htaccess
# mv dispatch.fcgi.example dispatch.fcgi

Set rights for apache user

# cd /var/www
# sudo chown -R apache:apache html
# sudo chmod -R 755 html

Set Up Virtual Host

# sudo nano /etc/httpd/conf.d/welcome.conf
<VirtualHost *:3000>
DocumentRoot /var/www/html/public/
PassengerRoot /home/aareez/.rvm/gems/ruby-2.4.1/gems/passenger-5.3.1
PassengerRuby /home/aareez/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser aareez
<Directory /var/www/html/public/>
Allow from all ExecCGI
Options -MultiViews
Require all granted
# sudo service httpd restart

Access Redmine




Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

we are now testing

Does your Company need Data-Driven Testing

How much does benefit pagination in python?

When AWS Chatbot is not so chatty

Easy mass-logging with AspectJ maven plugin

From Bits to People

Joint Family — Puzzle for Interview rounds

Kotlin and Rx2. How I wasted 5 hours because of wrong brackets

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alibaba Cloud

Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:

More from Medium

DockerCon2022 Key Takeaways: Docker And WebAssembly

Build flexible abstraction for any Kubernetes Resources with CUE and KubeVela

Why is Containerization Taking Over?

Monitor Linux logs with ELK and rsyslog in Open Telekom Cloud