Redmine: Difference between revisions
m (s/test/production/ for redmine) |
(corrections using alpine-2.1.6. Edge repository no longer needed. Some missing steps were added.) |
||
Line 1: | Line 1: | ||
Install Lighttpd with FastCGI | |||
{{:Setting Up Lighttpd With FastCGI}} | |||
Install extra packages for redmine: | |||
apk add fcgi mysql mysql-dev rubygems fcgi-dev sqlite-dev | |||
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: | 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 | gem install -V --no-rdoc --no-ri actionmailer --version 2.3.3 | ||
gem install -V --no-rdoc --no-ri activerecord --version 2.3.3 | |||
activerecord | gem install -V --no-rdoc --no-ri activeresource --version 2.3.3 | ||
activeresource | gem install -V --no-rdoc --no-ri edavis10-object_daddy --version 0.4.3 | ||
gem install -V --no-rdoc --no-ri fcgi --version 0.8.8 | |||
edavis10-object_daddy | gem install -V --no-rdoc --no-ri mocha --version 0.9.10 | ||
fcgi | gem install -V --no-rdoc --no-ri mysql --version 2.8.1 | ||
mocha | gem install -V --no-rdoc --no-ri rails --version 2.3.3 | ||
mysql | gem install -V --no-rdoc --no-ri shoulda --version 2.10.3 | ||
gem install -V --no-rdoc --no-ri sqlite3 --version 1.3.3 | |||
rails | |||
shoulda | |||
sqlite3- | |||
Configure MySql | Configure MySql | ||
Line 61: | Line 46: | ||
chown -R lighttpd:lighttpd /usr/share/webapps/redmine | chown -R lighttpd:lighttpd /usr/share/webapps/redmine | ||
chmod 0666 /usr/share/webapps/log/production.log | |||
mkdir /var/run/redmine | |||
chown lighttpd:lighttpd /var/run/redmine | |||
Edit the database config file and | Edit the database config file and add the mysql password at every occurrence of "password:" | ||
cp /usr/share/webapps/redmine/config/database.yml.example /usr/share/webapps/redmine/config/database.yml | cp /usr/share/webapps/redmine/config/database.yml.example /usr/share/webapps/redmine/config/database.yml | ||
Line 84: | Line 72: | ||
Now you can browse to '''localhost:3000''' an log using '''admin''' user and '''admin''' password. | Now you can browse to '''localhost:3000''' an log using '''admin''' user and '''admin''' password. | ||
Once Redmine is confirmed working, kill webrick. | Once Redmine is confirmed working, kill webrick. | ||
Set up lighttpd by editing lighttpd.conf. | |||
: Uncomment the following line: | |||
"mod_alias", | |||
: Add the following content to the end of the file: | |||
$HTTP["url"] =~ "^/redmine/" { | $HTTP["url"] =~ "^/redmine/" { | ||
alias.url = ("/redmine" => "/usr/share/webapps/redmine/public") | alias.url = ("/redmine" => "/usr/share/webapps/redmine/public") | ||
Line 107: | Line 100: | ||
) | ) | ||
} | } | ||
Configure a relative URL by editing /usr/share/webapps/redmine/config/environment.rb: Add the line shown below, within the code block "Rails::Initializer.run do |config|" | |||
config.action_controller.relative_url_root = '/redmine' | |||
Restart lighttpd | Restart lighttpd | ||
Line 188: | Line 184: | ||
`cd /usr/share/webapps/redmine && rake redmine:email:read RAILS_ENV="production" project=myproject < /var/tmp/$timeinsec`; | `cd /usr/share/webapps/redmine && rake redmine:email:read RAILS_ENV="production" project=myproject < /var/tmp/$timeinsec`; | ||
exit 0 | exit 0 | ||
Configure LBU | |||
lbu inc /usr/lib/ruby | |||
lbu inc /usr/share/webapps |
Revision as of 09:58, 7 April 2011
Install Lighttpd with FastCGI
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
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
Start lighttpd
service and add it to default runlevel
# rc-service lighttpd start # rc-update add lighttpd default
Install extra packages for redmine:
apk add fcgi mysql mysql-dev rubygems fcgi-dev sqlite-dev
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:
gem install -V --no-rdoc --no-ri actionmailer --version 2.3.3 gem install -V --no-rdoc --no-ri activerecord --version 2.3.3 gem install -V --no-rdoc --no-ri activeresource --version 2.3.3 gem install -V --no-rdoc --no-ri edavis10-object_daddy --version 0.4.3 gem install -V --no-rdoc --no-ri fcgi --version 0.8.8 gem install -V --no-rdoc --no-ri mocha --version 0.9.10 gem install -V --no-rdoc --no-ri mysql --version 2.8.1 gem install -V --no-rdoc --no-ri rails --version 2.3.3 gem install -V --no-rdoc --no-ri shoulda --version 2.10.3 gem install -V --no-rdoc --no-ri sqlite3 --version 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 chmod 0666 /usr/share/webapps/log/production.log mkdir /var/run/redmine chown lighttpd:lighttpd /var/run/redmine
Edit the database config file and add the mysql password at every occurrence of "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.
Set up lighttpd by editing lighttpd.conf.
- Uncomment the following line:
"mod_alias",
- Add the following content to the end of the file:
$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" ) ) ) ) }
Configure a relative URL by editing /usr/share/webapps/redmine/config/environment.rb: Add the line shown below, within the code block "Rails::Initializer.run do |config|"
config.action_controller.relative_url_root = '/redmine'
Restart lighttpd
/etc/init.d/lighttpd restart
Note: To enable email to ticket creation from unknown users/email addresses (after allowing anonymous issue creation within Redmine UI) for the 'myproject' project in Redmine:
#!/usr/bin/perl # Author: Jeff Bilyk # March 2, 2011 #Script to take email from stdin, then: # - Check redmine database to see if the user exists # - If user doesn't exist, create the user # - Pass the email on the redmine utility: # - echo "email contents" | rake redmine:email:read RAILS_ENV="production" project=myproject use strict; use DBI; # global variables my $DbName = 'redmine'; my $DbUser = 'redmine'; my $DbPassword = 'Secur3P@ass'; my @fields; my @address; my $existinguser; # Get email from stdin my @email = <STDIN>; # Parse field for "for" foreach (@email) { if ($_ =~ /From/) { @fields = (split /</,$_); @address = (split />/,$fields[1]); } } my $dbh = DBI->connect('dbi:mysql:' . $DbName, $DbUser, $DbPassword, { PrintError => 0 }) or die "SQL Connect Error:" . DBI->errstr; # Find out if there're any existing users with the specified email address my $sqlStatement = "SELECT * from users where mail = '$address[0]';"; my $sqlCommand = $dbh->prepare($sqlStatement); $sqlCommand->execute or die "SQL Error: " . DBI->errstr; my @sqlRecordset; $existinguser = 'maybe'; @sqlRecordset = $sqlCommand->fetchrow_array; if ($sqlRecordset[0] == ) { printf "@sqlRecordset \n"; $existinguser = 'no'; } else { $existinguser = 'yes'; } # If there isn't a user already, then create one if ($existinguser == 'no') { my @name = (split /@/,$address[0]); printf "Current variables: $name[0] $address[0] \n"; $sqlStatement = "INSERT INTO users (login, firstname, lastname, mail, mail_notification, admin, status, language, type) values (\"$name[0]\", \"$name[0]\", \" \", \"$address[0]\", 0, 0, 1, \"en\", \"User\");"; $sqlCommand = $dbh->prepare($sqlStatement); $sqlCommand->execute or die "SQL Error: " .DBI->errstr; printf "User created"; } my $timeinsec = `date +%s`; open (MYFILE, ">>/var/tmp/$timeinsec"); print MYFILE "@email"; close (MYFILE); system("sed -i 's/^ //' /var/tmp/$timeinsec"); system("sed -i 's/^ //' /var/tmp/$timeinsec"); `cd /usr/share/webapps/redmine && rake redmine:email:read RAILS_ENV="production" project=myproject < /var/tmp/$timeinsec`; exit 0
Configure LBU
lbu inc /usr/lib/ruby lbu inc /usr/share/webapps