This page explains how to install ]project-open[ V4.0 on Ubuntu Precise Pangolin LTS (12.04) 64bit.
Thanks to:
Please Note:
Become "root" first
sudo su -
Create the "projop" Linux user
Please don't change (at the moment) the name or the home directory (/web/projop/) of the new user. More than 20 different files reference the location, and the probability is very high that might miss one of them...
mkdir /web mkdir /web/projop groupadd projop useradd -g projop -d /web/projop -m -s /bin/bash projop chown -R projop:projop /web/projop/
Install required packages
Please install the packages below.
apt-get install git-core emacs unzip zip make wwwconfig-common nginx jodconverter ldap-utils tcl tcl8.4 tcllib \ tclthread tdom xotcl aolserver4-core aolserver4-daemon aolserver4-doc aolserver4-nspostgres aolserver4-nssha1 \ aolserver4-xotcl aolserver4-dev libdjvulibre-text libdjvulibre21 libgomp1 libilmbase6 liblcms1 libltdl7 \ libopenexr6 libpaper-utils libpaper1 libpq5 libwmf0.2-7 daemontools daemontools-run postgresql-8.4 \ postgresql-doc-8.4 postgresql-client-8.4 postgresql-client-common postgresql-contrib-8.4 ghostscript gsfonts \ psfontmgr imagemagick graphviz libcupsimage2 libreoffice-writer libreoffice-draw libreoffice-java-common
Please Note:
Verify PostgreSQL 8.4 Installation
]project-open[ requires PostgreSQL 8.4. ]po[ does not work with PostgreSQL 9.1. This is most frequent error when installing ]po[ on Ubuntu or Debian .
Please check if there is PostgreSQL 9.x installed in your system:
dpkg -l | grep postgres
You should get the following lines (we have cut off the last column):
ii aolserver4-nspostgres 4.5-3build1 ii postgresql-8.4 8.4.17-0ubuntu12.04 ii postgresql-client-8.4 8.4.17-0ubuntu12.04 ii postgresql-client-common 129ubuntu1 ii postgresql-common 129ubuntu1 ii postgresql-contrib-8.4 8.4.17-0ubuntu12.04 ii postgresql-doc-8.4 8.4.17-0ubuntu12.04
]project-open[ will not work if there is a "9.0", "9.1" or a plain "postgresql" (without any version number) somewhere in these lines!
Please verify that you've got the right version of PostgreSQL installed:
su - projop psql --version
You should see something like "psql (PostgreSQL) 8.4.17 - contains support for command-line editing".
Fix a bug in the AOLserver distribution of Precise Pangolin (yes, an error in the distro!)
First we need to find out our exact distribution (and processor instruction set):
cd /usr/local/src uname -a
If you see something like "i386" or "i686" in the resulting line, use this instruction
wget http://mirror.linux.org.au/ubuntu/pool/universe/a/aolserver4-nssha1/aolserver4-nssha1_0.1-3_i386.deb wget http://mirror.linux.org.au/ubuntu/pool/universe/a/aolserver4-nspostgres/aolserver4-nspostgres_4.5-3_i386.deb dpkg -x aolserver4-nspostgres_4.5-3_i386.deb / dpkg -x aolserver4-nssha1_0.1-3_i386.deb /
In other cases, try this:
wget http://mirror.linux.org.au/ubuntu/pool/universe/a/aolserver4-nssha1/aolserver4-nssha1_0.1-3_amd64.deb wget http://mirror.linux.org.au/ubuntu/pool/universe/a/aolserver4-nspostgres/aolserver4-nspostgres_4.5-3_amd64.deb dpkg -x aolserver4-nspostgres_4.5-3_amd64.deb / dpkg -x aolserver4-nssha1_0.1-3_amd64.deb /
Now it is time to configure the error log place
mkdir /usr/lib/aolserver4/log/ chgrp projop /usr/lib/aolserver4/log chmod g+w /usr/lib/aolserver4/log
Install additional AOLserver libraries that Ubuntu didn't include...
cd /usr/local/src wget http://downloads.sourceforge.net/project/tcl/Thread%20Extension/2.6.7/thread2.6.7.tar.gz tar -xzf thread2.6.7.tar.gz cd thread2.6.7/unix ../configure --enable-threads --prefix=/usr/lib/aolserver4 --exec-prefix=/usr/lib/aolserver4 \ --with-aolserver=/usr/lib/aolserver4 --with-tcl=/usr/lib/tcl8.5 make make install
Modify PostgreSQL parameters
Please edit the PostgreSQL configuration file at /etc/postgresql/8.4/main/postgresql.conf with your preferred editor, search for the parameters below, remove the # before the parameters and set the values as specified. The values below are located towards the end of the postgresql.conf file in the "VERSION/PLATFORM COMPATIBILITY" section:
su - postgres emacs /etc/postgresql/8.4/main/postgresql.conf
exit
Now restart the the database:
/etc/init.d/postgresql restart
Get ]project-open[ product files
Please make sure you are "root" again:
cd /usr/local/src/ wget http://sourceforge.net/projects/project-open/files/project-open/V4.0/project-open-Update-4.0.4.0.0.tgz wget http://sourceforge.net/projects/project-open/files/project-open/Support%20Files/web_projop-aux-files.4.0.4.0.0.tgz su - projop tar xzf /usr/local/src/project-open-Update-4.0.4.0.0.tgz tar xzf /usr/local/src/web_projop-aux-files.4.0.4.0.0.tgz exit
Edit the ]po[ configuration file
Please modify the following parameters with your preferred editor:
su - projop emacs /web/projop/etc/config.tcl
exit
Setup the PostgreSQL database
Create the "projop" PostgreSQL user:
su - postgres createuser -s projop exit
Create the PostgreSQL database and load the ]po[ "Tigerpond" demo data
su - projop createdb --owner=projop --encoding=utf8 projop createlang plpgsql projop (may generate an error that plpgsql is already installed.) psql -f pg_dump.4.0.4.0.0.sql > import.log 2>&1 (this may take 5-300 seconds, depending on the speed of your server) (servers with >20 seconds are only suitable for smaller companies) (please see: http://www.project-open.org/en/benchmark-postgresql-load-database ) exit
Start ]project-open[ manually
/usr/lib/aolserver4/bin/nsd -ft /web/projop/etc/config.tcl -u projop -g projop
]po[ should take 25s to 60s to write out some ~40.000 lines before the line appears "[...] Notice: nssock: listening on 0.0.0.0:8000".
Please check for lines including "Error:" or "Warning:" if there are less lines of if the start-up is faster.
Now point your favorite Web browser to http://localhost:8000/ and login as "sysadmin@tigerpond.com" / "system". You should see the first page with the configuration wizard. Please do not continue here at the moment, because we still need to fix several issues before ]po[ will run as it should.
You can stop the ]po[ server in the terminal with Ctrl-C.
The following steps are necessary in a production environment.
Fix workflow diagram rendering
The ]po[ dynamic workflow requires the package "graphviz" to be installed and the "dot" executable in the folder /usr/local/bin/dot. However, Ubuntu by default installs the binary in /usr/bin/dot, so please create a symbolic link in the expected location
cd /usr/local/bin ln -s /usr/bin/dot
Configure daemontools
Daemontools manage the startup of ]po[ and will restart ]po[ in case of a manual or unforeseen shutdown.
mkdir /var/lib/supervise/projop echo '#!/bin/sh' > /var/lib/supervise/projop/run echo 'exec /usr/lib/aolserver4/bin/nsd -it /web/projop/etc/config.tcl -u projop -g projop' >> /var/lib/supervise/projop/run chown -R projop.projop /var/lib/supervise/projop chmod ug+x /var/lib/supervise/projop/run update-service --add /var/lib/supervise/projop/ projop initctl start svscan
Now you should see your aolserver nicely starting up when typing in the following command (there may be a delay of 15 seconds before you can see the debugging lines coming):
tail -f /web/projop/log/error.log
Configure ngnix as Reverse Proxy (Optional)
]project-open[ by default listens on port 8000 and for permission reasons can not listen on port 80. As a workaround you can install a “reverse proxy†server on port 80 that redirects HTTP requests to port 8000.
You can configure Apache for such a purpose, or the small Web server ngnix. Ngnix is also convenient if you want to run more then one ]po[ or non-]po[ server on your machine, because it allows you to distribute HTTP requests to different back-ends, depending on the HTTP headers.
Assuming that there is no other process listening on port 80 (netstat -nlp | grep 80), please copy the following text into the file /etc/nginx/conf.d/default.conf:
server { listen 80; location / { proxy_pass http://localhost:8000; proxy_set_header X-Forwarded-For $remote_addr; } }
Then please perform:
/etc/init.d/nginx restart netstat -nlp | grep 80
You should now see nginx listening on port 80.
Now you can point your web browser to the URL http://localhost/ or http://<your_ip>/ and see ]project-open[.
Prepare OpenOffice/LibreOffice (Optional)
This step is optional, because OpenOffice/LibreOffice is only needed for formatting specific documents. Also, you can configure OpenOffice later.
Please edit the file /etc/init.d/openoffice with your favorite editor and enter the following text:
#!/bin/bash # openoffice.org headless server script # # chkconfig: 2345 80 30 # description: headless openoffice server script # processname: openoffice # # Author: Vic Vijayakumar # Modified by Federico Ch. Tomasczik # OOo_HOME=/usr/bin SOFFICE_PATH=$OOo_HOME/soffice PIDFILE=/var/run/openoffice-server.pid set -e case "$1" in start) if [ -f $PIDFILE ]; then echo "OpenOffice headless server has already started." sleep 5 exit fi echo "Starting OpenOffice headless server" $SOFFICE_PATH --headless --nologo --nofirststartwizard --accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1 touch $PIDFILE ;; stop) if [ -f $PIDFILE ]; then echo "Stopping OpenOffice headless server." killall -9 soffice.bin rm -f $PIDFILE exit fi echo "Openoffice headless server is not running." exit ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
Then execute:
chmod 755 /etc/init.d/openoffice update-rc.d openoffice defaults
Configure the Postfix Mail Server (Optional)
You can configure the Postfix SMTP server using the Ubuntu installer. This configuration is provided in case you haven't yet installed Postfix:
apt-get install postfix heirloom-mailx
The following "smarthost" configuration assumes that you have access to a SMTP server of your internet provider that requires a username/password. You could also just use your SMTP configuration from your personal email client.
sudo emacs /etc/postfix/main.cf
Search for relayhost and add the following lines beneath it
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth smtp_sasl_security_options = noanonymous
Set the authentication username/password for your relayhost
sudo emacs /etc/postfix/smtp_auth
Now add your credentials to smtp_auth in clear text
yourrelayhost.com yourusername:yourpassword
And add this to your postfix database
postmap /etc/postfix/smtp_auth /etc/init.d/postfix reload chmod 700 /etc/postfix/smtp_auth
Configure LDAP Integration (Optional)
Install PERL module:
apt-get install perl ldap-utils cpan (please follow defaults) -> install -> install IO::Socket::PortState -> install Net::LDAP (please follow defaults)
Install the auth-ldap-adldapsearch package:
Open ]project-open[ in your favorite Web browser and go to the URL http://localhost/intranet-sysconfig/ldap/ldap-ip-port and follow the steps.
Install TLS (Optional)
TLS is only necessary if you want to configure secure Web communication using HTTPS.
cd /usr/local/src/ wget http://downloads.sourceforge.net/tls/tls1.5.0-src.tar.gz tar xzpf tls1.5.0-src.tar.gz cd tls1.5 apt-get install libssl-dev ./configure --with-ssl-dir=/usr --with-tcl=/usr/lib/tcl8.4 --enable-threads \ --enable-shared --prefix=/usr/lib/aolserver4 --exec-prefix=/usr/lib/aolserver4 \ --with-tclinclude=/usr/include/tcl8.4/ make install
Did you encounter any issues? Did you successfully install ]project-open[?
Please let us know for what purpose you want to use ]project-open[, and we provide you with half a day of free training or consulting if we publish a Success Story together.
Calle Aprestadora 19, 12o-2a
08902 Hospitalet de Llobregat (Barcelona)
Spain
Tel Europe: +34 609 953 751
Tel US: +1 415 200 2465
Mail: info@project-open.com