HowTo Install Redmine 25x on Ubuntu 1404 with Apache2 Phusion Passenger MySQL and Subversion » History » Revision 8
Revision 7 (ann luo, 2014-08-11 12:08) → Revision 8/9 (ann luo, 2014-08-11 12:09)
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: https://www.easycron.com. http://www.easycron.com.