HowTo Install Redmine 25x on Ubuntu 1404 with Apache2 Phusion Passenger MySQL and Subversion » History » Revision 7
Revision 6 (Redmine Geist, 2014-07-25 14:52) → Revision 7/9 (ann luo, 2014-08-11 12:08)
h1. HowTo Install Redmine 2.5.x on Ubuntu 14.04 with Apache2 Phusion Passenger MySQL and Subversion
{{toc}}
h2. Installing Dependencys
<pre>
apt-get update && apt-get upgrade -y
sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server php5-mysql phpmyadmin libapache2-mod-perl2 libcurl4-openssl-dev libssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev libmysqlclient-dev libmagickcore-dev libmagickwand-dev curl git-core patch build-essential bison zlib1g-dev libssl-dev libxml2-dev libxml2-dev sqlite3 libsqlite3-dev autotools-dev libxslt1-dev libyaml-0-2 autoconf automake libreadline6-dev libyaml-dev libtool imagemagick apache2-utils
</pre>
I don't know if every package needed, but it works.
h2. Installing Subversion
<pre>
sudo apt-get install subversion libapache2-svn
</pre>
<pre>
sudo mkdir -p /var/lib/svn
sudo chown -R www-data:www-data /var/lib/svn
sudo a2enmod dav_svn
</pre>
Open config file
<pre>
sudo nano /etc/apache2/mods-enabled/dav_svn.conf
</pre>
Uncomment following lines
<pre>
<Location /svn>
DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName "My repository"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
<LimitExcept GET PROFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
</pre>
<pre>
sudo a2enmod authz_svn
</pre>
Add the redmine user for reading from repository
<pre>
sudo htpasswd -c /etc/apache2/dav_svn.passwd redmine
sudo service apache2 restart
</pre>
Create the repository
<pre>
sudo svnadmin create --fs-type fsfs /var/lib/svn/my_repository
sudo chown -R www-data:www-data /var/lib/svn
</pre>
Open file for configuration of repository access
<pre>
sudo nano /etc/apache2/dav_svn.authz
</pre>
Add access rights for redmine to the repository in the config file
<pre>
[my_repository:/]
redmine = r
</pre>
h2. Installing Ruby and Ruby on Rails
<pre>
sudo apt-get install ruby1.9.3 ruby1.9.1-dev ri1.9.1 libruby1.9.1 libssl-dev zlib1g-dev
sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 400 \
--slave /usr/share/man/man1/ruby.1.gz ruby.1.gz \
/usr/share/man/man1/ruby1.9.1.1.gz \
--slave /usr/bin/ri ri /usr/bin/ri1.9.1 \
--slave /usr/bin/irb irb /usr/bin/irb1.9.1 \
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.1
sudo gem update
sudo gem install bundler
</pre>
h2. Installing of Redmine
h3. Redmine
Exampe for version 2.5.2, change the version number for other releases
<pre>
cd /usr/share
sudo wget http://www.redmine.org/releases/redmine-2.5.2.tar.gz
sudo tar xvfz redmine-2.5.2.tar.gz
sudo rm redmine-2.5.2.tar.gz
sudo mv redmine-2.5.2 redmine
sudo chown -R root:root /usr/share/redmine
sudo chown www-data /usr/share/redmine/config/environment.rb
sudo ln -s /usr/share/redmine/public /var/www/html/redmine
</pre>
h3. MySQL
<pre>
mysql -u root -p
</pre>
Execute following lines to MySQL
<pre>
CREATE DATABASE redmine character SET utf8;
CREATE user 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL privileges ON redmine.* TO 'redmine'@'localhost';
exit
</pre>
Configure Redmine database connection
<pre>
sudo cp redmine/config/database.yml.example redmine/config/database.yml
</pre>
Open database config file
<pre>
sudo nano redmine/config/database.yml
</pre>
Change the username and the password in the config file
<pre>
database.yml:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: my_password
encoding: utf8
</pre>
h3. Configuration
<pre>
cd /usr/share/redmine/
sudo bundle install --without development test postgresql sqlite
sudo rake generate_secret_token
sudo RAILS_ENV=production rake db:migrate
sudo RAILS_ENV=production rake redmine:load_default_data
sudo mkdir public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets
</pre>
h2. Installing Phusion Passenger
h3. Add repository
Add repository for Phusion Passenger
<pre>
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
sudo apt-get install apt-transport-https ca-certificates
</pre>
Open repository config file
<pre>
sudo nano /etc/apt/sources.list.d/passenger.list
</pre>
Add following repository source
<pre>
deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main
</pre>
<pre>
sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list
</pre>
h3. Installing
<pre>
sudo apt-get update
sudo apt-get install libapache2-mod-passenger
</pre>
h3. Configuration
Open passenger config file
<pre>
sudo nano /etc/apache2/mods-available/passenger.conf
</pre>
Add following line to passenger config file
<pre>
PassengerDefaultUser www-data
</pre>
Open apache2 config file
<pre>
sudo nano /etc/apache2/sites-available/000-default.conf
</pre>
Add following part to apache2 config file
<pre>
<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</pre>
<pre>
sudo a2enmod passenger
sudo service apache2 restart
</pre>
h2. Start Redmine
Remine should now available at your host
<pre>
http://yourhost/redmine
</pre>
Login data:
Username: admin
Password: admin
h2. e-Mail configuration
Example for smtp and encryption
Open redmine config file
<pre>
sudo nano /usr/share/redmine/config/configuration.yml
</pre>
Add following to redmine config file
<pre>
# Outgoing email settings
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: smtp.host.com
port: 587
domain: host.com
authentication: :login
user_name: myname
password: mypassword
</pre>
You can check the e-Mail config in web interface with testmail function
h2. Autoupdate Subversion repository view
In the project archive settings over web interface its needed to enable the web service for project archives and generate a api key
The following cronjob updates redmine to current subversion changesets every 15 minutes
<pre>
sudo crontab -e
</pre>
Add the cronjob
<pre>
*/15 * * * * curl "http://yourhost/redmine/sys/fetch_changesets?key=APIKEY" > /dev/null
</pre>
If your hosting does not offer cron job configuration then you can use external services like these:
http://www.easycron.com.