January, 2011Archive for

RIS & Redmine

January 25, 2011 admin No comments

Redmine configuration

Administration - Custom fields
Administration - Settings - Autentification
My account - API access key

RIS risRedminePlugin configuration

  1. Open the plugin configuration file: C:\htdocs\ris\plugins\risRedminePlugin\config\app.yml
  2. Make sure to change url and key to match your Redmine url and API access key.
        redmineprojects:              10
        redminetasks:                 10
        url:                          http://localhost:8000
        key:                          77b08c3b1c17ff101a25c3fc2113dc8c8fa5c28a
        custom_field_uuid_id:         1
        priority_id:                  4
        tracker_id:                   2
  3. Open the plugin configuration file: C:\htdocs\ris\config\ProjectConfiguration.class.php
  4. Add risRedminePlugin to the enablePlugins array in your project Configuration
    require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
    class ProjectConfiguration extends sfProjectConfiguration
    	public function setup()
    		$this->enablePlugins('sfPropel15Plugin', 'sfProtoculousPlugin', 'sfDateTime2Plugin', 'sfFormExtraPlugin', 'sfPropelUuidBehaviorPlugin', 'sfFormButtonsPlugin', 'sfAmfPlugin', 'risRedminePlugin', 'sfPhpExcelPlugin');
    	public function setIncludePath()
    		sfToolkit::addIncludePath(dirname(__FILE__).'/../lib/vendor/PEAR/', 'front');

Projekt in Redmine importieren(ohne Vorgänge)

Folgende Daten werden mittels REST-API von RIS zu Redmine automatisch übergeben:

  • Name
  • Beschreibung
  • Kennung – UUID des Projekts

Ticket in Redmine importieren / aktualisieren

Folgende Daten werden mittels REST-API von RIS zu Redmine automatisch übergeben:

  • Thema – Vorgangsname
  • Beschreibung
  • Status – konfigurierbar für alle importierten Tickets
  • Priorität – konfigurierbar für alle importierten Tickets
  • Zugewiesen am Vorgangs – Mitarbeiter, bei dem das Kontrollkästchen “Besitzer” angekreuzt ist, oder der erste zugewiesene Mitarbeiter
  • Beginn
  • Abgabedatum
  • Geschätzter Aufwand
  • Beobachter – Alle Vorgangs-Mitarbeiter
  • Benutzerdefinierte Felder “uuid” – UUID des Vorgangs

Zuordnung Mitarbeiter vom Rillsoft Ressourcenpool zu Redmine-Mitglied wird über E-Mail-Adresse gemacht

Übername von aufgewendeter Zeit aus Redmine

  1. Aufgewendete Zeit wird von allen untergeordneten Tickets gesammelt und an Vorgangs-Mitarbeiter übernommen.
  2. Aufgewendete Zeit von Redmine-Mitglied, der nicht dem Vorgangs-Mitarbeiter zugeordnet ist, wird nicht übernommen.
  3. Wenn Ticket auf 100% erledigt ist, werden wie tatsächlich erbrachter Aufwand so auch Anfang und Ende aus aufgewendeter Zeit übernommen und der Vorgang wird als abgeschlossen markiert.

Categories: Redmine, Rillsoft Tags:

How to install RIS & MS SQL Server(Win 7)

January 17, 2011 admin No comments

Create RIS database (MS SQL Server Express Edition 2005/2008)

  1. Press the Start menu button and launch Command Prompt
  2. Execute the following commands to create a new database and user:
    -- Create database
    -- Create login
    -- Create user
    CREATE USER ris;
    USE ris;
    -- Define role
    EXEC sys.sp_addrolemember @membername = 'ris', @rolename = 'db_owner'
  3. Execute the following command to exit SQL Server console:


Configure PHP for MS SQL

  1. Download and Install Microsoft® SQL Server® 2008 R2 Native Client sqlncli.msi
  2. Download Microsoft Drivers for PHP for SQL Server SQLSRV20.EXE
  3. Installed the SQLSRV20.EXE in C:\Program Files\PHP\ext
  4. Open the PHP configuration file: C:\Program Files\PHP\php.ini
  5. Insert the following configuration parameters:


RIS Database configuration for MS SQL

  1. Open the databases configuration file: C:\htdocs\ris\config\databases.yml
  2. Make sure to change host, dbname, username and password to match your account.
          classname:  DebugPDO
            realmemoryusage: true
              time:       { enabled: true }
              slow:       { enabled: true, threshold: 0.1 }
              mem:        { enabled: true }
              mempeak:    { enabled: true }
              method:     { enabled: true }
              memdelta:   { enabled: true }
              querycount: { enabled: true }
          classname:  DebugPDO
        class:        sfPropelDatabase
          classname:  PropelPDO
          dsn:        sqlsrv:Server=localhost\SQLEXPRESS,1031;Database=ris
          username:   ris
          password:   myPassword
          encoding:   utf-8
          persistent: true
          pooling:    true
  3. Open the propel configuration file: C:\htdocs\ris\config\propel.ini
  4. Make sure to change host, dbname, user and password to match your account.
    propel.targetPackage       = lib.model
    propel.packageObjectModel  = true
    propel.project             = ris
    propel.database            = mssql
    propel.database.driver     = mssql
    propel.database.url        = sqlsrv:Server=localhost\SQLEXPRESS,1031;Database=ris
    propel.database.createUrl  = ${propel.database.url}
    propel.database.user       = ris
    propel.database.password   = myPassword
    propel.database.encoding   = utf-8
Categories: Rillsoft Tags:

How to install Redmine 1.4 (CentOS 5.8)

January 17, 2011 admin 2 comments

Install the Apache

Install the MySQL 5.1

# yum install mysql mysql-devel mysql-server
# chkconfig --levels 235 mysqld on
# /etc/init.d/mysqld start

Create database for Redmine:

# mysql -u root -p
CREATE DATABASE redmine CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';
GRANT ALL ON redmine.* TO 'redmine'@'localhost';


Installing Ruby

# yum install gcc-c++ openssl openssl-devel zlib zlib-devel mysql-devel postgresql-devel subversion wget
# wget
# tar zxvf ruby-1.8.7.tar.gz
# cd ruby-1.8.7
# ./configure
# make && make install

math.c:37:13: error: missing binary operator before token "("
make: *** [math.o] Error 1
Just open math.c [Don’t locate any where just use vi math.c from the same same location where you are executing the command ‘make’]
And look at the line
“#elif define(ERANGE)” it should be “#elif defined(ERANGE)”
Note: not “define”, it is “defined” => d is missing in this phrase


Installing RubyGems

# wget
# tar zxvf rubygems-1.8.7.tgz
# cd rubygems-1.8.7
# ruby setup.rb


Installing Redmine

# cd /opt
# svn co redmine-1.4

Installing Bundler

# gem install bundler

Installing Rails

# cd /opt/redmine-1.4
# bundle install --without development test postgresql sqlite rmagick


Created lets configure our database settings for Redmine:

# cd /opt/redmine-1.4
# cp  config/database.yml.example config/database.yml

Edit config/database.yml and set your settings:

# vi config/database.yml
    adapter: mysql
    database: redmine
    host: localhost
    username: redmine
    password: redmine

Generate a session store secret:

# cd /opt/redmine-1.4
# rake config/initializers/session_store.rb

Create the database structure:

# RAILS_ENV=production rake db:migrate
# RAILS_ENV=production rake redmine:load_default_data

Configure email settings:

cd /opt/redmine-1.4
cp config/email.yml.example config/email.yml


Option 1. Running under Apache

# yum install httpd-devel curl-devel apr-devel gcc gcc-c++
# gem install passenger
# passenger-install-apache2-module
# cd /opt/redmine-1.4
# chown -R root:root .
# chown -R apache:apache files log tmp public/plugin_assets
# chmod -R 755 files log tmp public/plugin_assets
# chown -R apache:apache config/environment.rb
# vi /etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/apache2/
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.12
PassengerRuby /usr/local/bin/ruby

# delete HTTP header which would be added by Passenger
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# for passenger tuning
PassengerLogLevel 0
RailsAutoDetect On
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerUseGlobalQueue on
#PassengerHighPerformance on !!! conflict with DAV svn
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0
PassengerUserSwitching On
PassengerDefaultUser apache
PassengerMaxRequests 3000
PassengerMinInstances 3
# vi /etc/httpd/conf/httpd.conf
DocumentRoot "/opt/redmine-1.4/public"
# ln -sf /opt/redmine-1.4/public /var/www/html/redmine

Redmine under a subdirectory

# vi /etc/httpd/conf/httpd.conf
RailsAutoDetect off
PassengerAppRoot /opt/redmine-1.4
RailsBaseURI  /redmine
Alias "/redmine" /opt/redmine-1.4/public

Check disable SElinux !!!
[error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog (/usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.11/agents/PassengerWatchdog): Permission denied (13)
How to disable SElinux

Option 2. Running under Apache

# yum install yum-priorities
# rpm -Uhv
# rpm -Uvh
# yum update
# yum install curl-devel apr-devel
# yum install openssl openssl-devel
# yum install zlib zlib-devel
# yum install gcc gcc-c++
# yum install subversion mod_dav_svn
# yum install perl-HTML-Parser perl-SVN-Notify

Installing Thin

# gem install thin
# thin install
# chkconfig --levels 235 thin on

Configure Thin

# thin config -C /etc/thin/redmine.yml -c /opt/redmine --servers 3 -e production
# service thin start


Configure Apache and add a Redmine config file

# vi /etc/httpd/conf/httpd.conf


NameVirtualHost *:80
# vi /etc/httpd/conf.d/redmine.conf
<VirtualHost *:80>
        DocumentRoot /opt/redmine-1.4
        <Proxy balancer://redminecluster>
        ProxyPass / balancer://redminecluster/
        ProxyPassReverse / balancer://redminecluster/
        ErrorLog /var/log/httpd/redmine_error.log
        CustomLog /var/log/httpd/redmine_access.log combined

(13)Permission denied: proxy: HTTP: attempt to connect
# setsebool -P httpd_can_network_connect=1

Option 3. Starting Redmine on built-in WEBrick web server

# cd /opt/redmine-1.4
# ruby script/server webrick -p 8000 -e production

Change IPTables

# vi /etc/sysconfig/iptables

Includes the following before the REJECT line:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
# service iptables restart

After its started you can access Redmine on the following URL:


Use default administrator account to log in:

    * login: admin
    * password: admin


Optional Intall ImageMagick

# yum install ImageMagick ImageMagick-devel libpng libpng-devel freetype freetype-devel giflib giflib-devel
# yum erase ImageMagick ImageMagick-devel
# wget
# tar -xzvf ImageMagick.tar.gz
# cd ImageMagick-6.6.7-6
# ./configure --without-perl
# make
# make install
gem install rmagick

Can’t install RMagick 2.13.1. Can’t find MagickWand.h.

C_INCLUDE_PATH=/usr/src/ImageMagick-6.7.4-8 gem install rmagick


Optional Imtall SVN

# yum install mod_dav_svn subversion
# mkdir /opt/svn
# chown root:apache /opt/svn
# chmod 0750 /opt/svn
# ln -s /opt/redmine/extra/svn/ /usr/lib/perl5/5.8.8/


# vi /etc/httpd/conf.d/svn.conf
PerlLoadModule Redmine
<Location /svn>
    DAV svn
    SVNParentPath "/opt/svn"
    AuthType Basic
    AuthName "Redmine SVN Repository"
    Require valid-user

    PerlAccessHandler Apache::Authn::Redmine::access_handler
    PerlAuthenHandler Apache::Authn::Redmine::authen_handler

    RedmineDSN "DBI:mysql:database=redmine;host=localhost"

    RedmineDbUser "redmine"
    RedmineDbPass "redmine"


Optional Autocreate Subversion Repositories

Go to Administration -> Settings -> Repositoryand check Enable WS for repository management.

# vi /etc/cron.d/redmine
*/10 * * * * root ruby /opt/redmine/extra/svn/reposman.rb --redmine localhost --svn-dir /opt/svn/ --owner apache --url file:///opt/svn/ --verbose >> /var/log/reposman.log


Trac to Redmine migration

# yum install ruby-devel sqlite sqlite-devel ruby-rdoc
# gem install sqlite3-ruby --version=1.2.5
# rake redmine:migrate_from_trac RAILS_ENV=production --trace

Upgrade 1.3 to 1.4

A key is required to write a cookie containing the session data. Use config.action_controller.session = { :key => “_myapp_session”, :secret => “some secret phrase” } in config/environment.rb

#rake config/initializers/session_store.rb
Categories: CentOS, Redmine Tags: