Redmine

From Alpine Linux
Revision as of 17:02, 5 March 2011 by Jbilyk (talk | contribs)

Note: We need to install using the edge repositories.

Change to the edge repository:

mv /etc/apk/repositories /etc/apk/repositories.old
echo -e "http://dl-3.alpinelinux.org/alpine/edge/main/" >> /etc/apk/repositories 

Update and upgrade

apk -U upgrade

Install services

Basic Installation

For installing the additional packages first activate community packages and update the package index

Install the required packages:

# apk add lighttpd php82 fcgi php82-cgi

Configure Lighttpd

Edit lighttpd.conf (/etc/lighttpd/lighttpd.conf) and uncomment the line:

Contents of /etc/lighttpd/lighttpd.conf

... include "mod_fastcgi.conf" ...

Edit mod_fastcgi.conf (/etc/lighttpd/mod_fastcgi.conf), find and change /usr/bin/php-cgi to /usr/bin/php-cgi82.

Contents of /etc/lighttpd/mod_fastcgi.conf

... "bin-path" => "/usr/bin/php-cgi82" # php-cgi ...

Start lighttpd service and add it to default runlevel

# rc-service lighttpd start # rc-update add lighttpd default

Install extra packages:

apk add fcgi mysql mysql-dev rubygems

Install the following rubygems (gem install <gemname> --version <version>). Note: newer versions of the gems may work, but these have been confirmed working in Alpine 2.1.2:

actionmailer (2.3.3)
actionpack (2.3.3)
activerecord (2.3.3)
activeresource (2.3.3)
activesupport (2.3.3)
edavis10-object_daddy (0.4.3)
fcgi (0.8.8)
mocha (0.9.10)
mysql (2.8.1)
rack (1.0.1)
rails (2.3.3)
rake (0.8.7)
shoulda (2.10.3)
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3)

Configure MySql

/usr/bin/mysql_install_db --user=mysql
/etc/init.d/mysql start && rc-update add mysql default
/usr/bin/mysqladmin -u root password 'password'

Create the redmine database

mysql -u root -p
create database redmine character set utf8;
grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'Secur3P@ass';
flush privileges;
exit

Create redmine folder

mkdir -p /usr/share/webapps/redmine

Download, unpack and move Redmine

cd /tmp/
wget http://rubyforge.org/frs/download.php/73140/redmine-1.0.3.tar.gz
tar zxvf redmine-1.0.3.tar.gz
mv redmine-1.0.3/* /usr/share/webapps/redmine/

Change permissions

chown -R lighttpd:lighttpd /usr/share/webapps/redmine

Edit the database config file and put the mysql password

cp /usr/share/webapps/redmine/config/database.yml.example /usr/share/webapps/redmine/config/database.yml
nano /usr/share/webapps/redmine/config/database.yml 

Some more steps

cd /usr/share/webapps/redmine
mv public/dispatch.fcgi.example public/dispatch.fcgi
rake generate_session_store
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data 

Note: keep default language of en

Start the Redmine testing webserver

ruby /usr/share/webapps/redmine/script/server webrick -e production

Now you can browse to localhost:3000 an log using admin user and admin password.

Once Redmine is confirmed working, kill webrick. Then setup lighttpd by editing lighttpd.conf:

$HTTP["url"] =~ "^/redmine/" {
 alias.url = ("/redmine" => "/usr/share/webapps/redmine/public")
 server.document-root = "/usr/share/webapps/redmine/public/"
 server.error-handler-404 = "/redmine/dispatch.fcgi"
 index-file.names         = ("dispatch.fcgi")
 # Change *-procs to 2 if you need to use Upload Progress or other tasks that
 # *need* to execute a second request while the first is still pending.
 fastcgi.server           += (
       ".fcgi" => (
               "localhost" => (
                       "min-procs"       => 1,
                       "max-procs"       => 2,
                       "check-local"    => "disable",
                       "socket"          => "/var/run/redmine/fcgi.socket",
                       "bin-path"        => "/usr/bin/ruby /usr/share/webapps/redmine/public/dispatch.fcgi",
                       "bin-environment" => (
                               "RAILS_ENV"               => "production"
                       )
               )
       )
 )
}

Restart lighttpd

/etc/init.d/lighttpd restart