This document describes how to upgrade Redmine. The procedure was tested for upgrade from version 1.0.1 to 1.4.4, but it might works on other Redmine versions.
In this procedure I used a basic install of a debian squeeze (the only service installed was openssh-server). I am assuming the server has network connectivity and its IP is 10.34.133.220.
Please note:
- please announce all people BEFORE starting this procedure
- the Apache server on production environment MUST be stopped so after the upgrade the database be in sync.
- this version of Redmine needs ruby version 1.8.7 or 1.9.3 (I am going to use the debian squeeze default ruby package which has version 1.8.7)
- all rsync-ed files in this procedure are attached
1. Login to the remote machine
[codesyntax lang="bash"]
ssh root@10.34.133.220
[/codesyntax]
2. Configure hostname
[codesyntax lang="bash"]
echo "workflow-vm" > /etc/hostname
[/codesyntax]
3. Install all required packages for Redmine installation
[codesyntax lang="bash"]
aptitude install apache2 mysql-server ruby libmysqlclient-dev libmagickcore-dev libmagickwand-dev imagemagick locate less rubygems sudo postfix mercurial cvs subversion darcs git libapache2-mod-passenger libxslt1-dev vim less
[/codesyntax]
4. Configure and test postfix
[codesyntax lang="bash"]
scp root@workflow-sandbox-vm.test.org:/etc/mailname /etc/
scp root@workflow-sandbox-vm.test.org:/etc/postfix/main.cf /etc/postfix/
echo "root: user@test.org" >> /etc/aliases
vim /etc/mailname
:%s/workflow-sandbox-vm.test.org/workflow-vm.test.org
:wq
vim /etc/postfix/main.cf
:%s/workflow-sandbox-vm.test.org/workflow-vm.test.org
:wq
newaliases
/etc/init.d/postfix restart
echo "test from new redmine server" | mail -s "test from new redmine server" "user@test.org"
[/codesyntax]
5. Configuring mysql database
[codesyntax lang="bash"]
mysql -Bsu root -pmysql123 -e "drop database redmine;"
mysql -Bsu root -pmysql123 -e "drop user redmine@localhost;"
mysql -Bsu root -pmysql123 -e "create database redmine character set utf8;"
mysql -Bsu root -pmysql123 -e "create user 'redmine'@'localhost' identified by 'redmine';"
mysql -Bsu root -pmysql123 -e "grant all privileges on redmine.* to 'redmine'@'localhost';"
mysql -Bsu root -pmysql123 -e "flush privileges;"
# dump mysql database from production environment and importing it to our machine
# maybe it is a good idea to use dbredmine as mysql server
# anyway for now we are going to use localhost as mysql server
mysqldump -hdbredmine redmine_default > ~/redmine_production.sql
mysql -u redmine -predmine redmine < ~/redmine_production.sql
[/codesyntax]
6. Configure gems
[codesyntax lang="bash"]
echo "gem: --no-rdoc --no-ri" > ~/.gemrc
[/codesyntax]
7. Downloading and installing Redmine
[codesyntax lang="bash"]
wget -c http://rubyforge.org/frs/download.php/76255/redmine-1.4.4.tar.gz
tar xfz redmine-1.4.4.tar.gz
mv redmine-1.4.4 /usr/share/redmine
cd /usr/share/
chown -R root:root /usr/share/redmine
chown www-data /usr/share/redmine/config/environment.rb
ln -s /usr/share/redmine/public /var/www/redmine
[/codesyntax]
8. Configuring Redmine
[codesyntax lang="bash"]
cp redmine/config/database.yml.example redmine/config/database.yml
vim redmine/config/database.yml
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: redmine
encoding: utf8
:wq
scp root@workflow-sandbox-vm.test.org:/usr/share/redmine/config/configuration.yml redmine/config/configuration.yml
[/codesyntax]
9. Installing required gems for Redmine
[codesyntax lang="bash"]
gem install bundler
cd redmine
/var/lib/gems/1.8/bin/bundle install --without development test postgresql sqlite
ln -s /var/lib/gems/1.8/bin/rake /usr/bin/
[/codesyntax]
10. Attachments
[codesyntax lang="bash"]
rm -fr /usr/share/redmine/files
mkdir -p /var/lib/redmine/default/files
ln -s /var/lib/redmine/default/files /usr/share/redmine/files
# copying attachments from production environment
rsync -avz --stats --progress root@10.99.0.241:/var/lib/redmine/default/files/* /usr/share/redmine/files
[/codesyntax]
11. Fixing permissions
[codesyntax lang="bash"]
mkdir public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
[/codesyntax]
12. Configuring Apache web server
[codesyntax lang="bash"]
vim /etc/apache2/sites-available/redmine
<VirtualHost *:443>
ServerName workflow-vm.test.org
ServerAlias workflow.test.org workflow
DocumentRoot /var/www
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/wildcard-internal-ca-test.org.crt
SSLCertificateKeyFile /etc/apache2/ssl/wildcard-internal-ca-test.org.key
ServerAdmin ionut@vendio.ro
LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined
<Directory /var/www/redmine>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</VirtualHost>
:wq
[/codesyntax]
[codesyntax lang="bash"]
vim /etc/apache2/ports.conf
:%s/NameVirtualHost \*:80/NameVirtualHost \*:443
:%s/Listen 80/#Listen 80
:wq
[/codesyntax]
[codesyntax lang="bash"]
rsync -avz --stats --progress root@workflow-sandbox-vm.test.org:/etc/apache2/ssl /etc/apache2
mv /etc/apache2/sites-enabled/000-default /tmp
a2ensite redmine
a2enmod passenger
a2enmod ssl
[/codesyntax]
13. Installing and migrating Redmine plugins
[codesyntax lang="bash"]
cd vendor/plugins
[/codesyntax]
13.1. Question plugin
[codesyntax lang="bash"]
rsync -avz --stats --progress root@10.99.0.241:/usr/share/redmine/vendor/plugins/question_plugin /usr/share/redmine/vendor/plugins/
rsync -avz --stats --progress root@10.99.0.241:/usr/share/redmine/app/views/mailer/_issue_text* /usr/share/redmine/app/views/mailer/
mv /usr/share/redmine/app/views/mailer/_issue_text_html.rhtml /usr/share/redmine/app/views/mailer/_issue_text_html.erb
mv /usr/share/redmine/app/views/mailer/_issue_text_plain.rhtml /usr/share/redmine/app/views/mailer/_issue_text_plain.erb
[/codesyntax]
13.2. Redmine Status plugin
[codesyntax lang="bash"]
rsync -avz --stats --progress root@workflow-sandbox-vm.test.org:/usr/share/redmine/vendor/plugins/redmine_status /usr/share/redmine/vendor/plugins/
[/codesyntax]
13.3. Redmine Stuff to do plugin
[codesyntax lang="bash"]
rsync -avz --stats --progress root@workflow-sandbox-vm.test.org:/usr/share/redmine/vendor/plugins/stuff_to_do_plugin /usr/share/redmine/vendor/plugins/
rsync -avz --stats --progress root@workflow-sandbox-vm.test.org:/usr/share/redmine/lib/ar_condition.rb /usr/share/redmine/lib/
[/codesyntax]
14. Fixing permissions for log file
[codesyntax lang="bash"]
cd /usr/share/redmine
chown www-data:www-data log/production.log
[/codesyntax]
15. Final steps to get Redmine working
[codesyntax lang="bash"]
rake generate_session_store
rake db:migrate RAILS_ENV=production
rake db:migrate_plugins RAILS_ENV=production
rake tmp:cache:clear
rake tmp:sessions:clear
[/codesyntax]
16. Restart Apache web server
[codesyntax lang="bash"]
/etc/init.d/apache2 restart
[/codesyntax]
Files:
question plugin: question_plugin.tar.gz
redmine status plugin: redmine_status.tar.gz
stuff to do plugin: stuff_to_do_plugin.tar.gz
Recent Comments