Project

General

Profile

HowTo Install Redmine 25x on Ubuntu 1404 with Apache2 Phusion Passenger MySQL and Subversion » History » Revision 5

Revision 4 (Redmine Geist, 2014-07-25 14:47) → Revision 5/9 (Redmine Geist, 2014-07-25 14:48)

h1. HowTo Install Redmine 25x on Ubuntu 1404 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 

 h3. Redmine 

 <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>