These are the instructions and the packages for installing ]Project-open[ on a Debian ETCH. You’ll surely find another way, but this works for me, and I hope maybe it will help you too.
Lots of thanks to Martin Van Es for his help on updating to PostgreSQL 8.1 and Aolserver4.
NOTE: As seen in a comment, don’t use PostgreSQL version 8.3 because it’s still not working well with ]PO[. You should use 8.1 for now.
1. Packages
Install system dependencies for ]PO[
apt-get install libreadline5-dev zlib1g-dev tcl8.4 tcl8.4-dev tk8.4-dev bison flex cdbs libpam0g-dev libperl-dev python2.4-dev python-dev x-dev
2. Aolserver
Install Aolserver4, needed modules and tdom
apt-get install aolserver4 aolserver4-dev aolserver4-doc aolserver4-nscache aolserver4-nsopenssl aolserver4-nspostgres aolserver4-nssha1 aolserver4-nsxml tdom
3. PostgreSQL
Install PostgreSQL and the contrib package (contains tsearch2, needed for fulltextsearch feature)
apt-get install postgresql-8.1 postgresql-contrib-8.1
Need to change some behaviour on PostgreSQL config. Edit /etc/postgresql/8.1/main/postgresql.conf. Look for VERSION/PLATFORM COMPATIBILITY section, and enable these variables as follows
add_missing_from = on regex_flavor = extended default_with_oids = on
Edit /etc/postgresql/8.1/main/pg_hba.conf. Look for the local IPv4 local connections section, and change md5 auth with ident as follows
# IPv4 local connections: #host all all 127.0.0.1/32 md5 host all all 127.0.0.1/32 ident sameuser
Restart postgresql
/etc/init.d/postgresql-8.1 restart
3. ]Project-open[
Download and install ]PO[ package
wget -c http://ivanhq.net/po/deb/project-open_3.2-1_i386.deb dpkg -i project-open_3.2-1_i386.deb
Create a user and a group for running ]po[
groupadd projop useradd -g projop -d /web/projop -s /bin/bash projop
Create a log dir and change permissions on the website for the new user
mkdir /web/projop/log chown -R projop:projop /web/projop
Create a new database for ]PO[ (default postgres charset is latin9, set it to utf8)
su - postgres createuser -a -d projop createdb --owner=projop projop -E UTF8 createlang plpgsql projop exit
Load demo data into the new database
su - projop cd /web/projop/packages/intranet-core/preconf gzip -d project-open-3.2.sql.gz psql projop -f project-open-3.2.sql
Check the data has been correctly imported
psql projop projop=# select count(*) from users; count ------- 196 (1 row) projop=# \\q
Edit config file (/web/projop/etc/config.tcl) and change main path settings
#set homedir /usr/local/aolserver #set bindir [file dirname [ns_info nsd]] set homedir /usr/lib/aolserver4 set bindir /usr/lib/aolserver4/bin
Launch the server to see if it works okay
/usr/sbin/aolserver4-nsd -f -t /web/projop/etc/config.tcl -u projop -g projop # Ctrl+C to stop
Exit user projop
exit
4. Init system
Edit default Aolserver4 init script /etc/init.d/aolserver4 and change next parameters
#USER=www-data #GROUP=www-data #ADDRESS=127.0.0.1 #CONF=/etc/aolserver4/aolserver4.tcl USER=projop GROUP=projop ADDRESS=0.0.0.0 CONF=/web/projop/etc/config.tcl
Change next line (about line 42, remove -s main)
#-u $USER -g $GROUP -b $ADDRESS:$PORT -s main -t $CONF >/dev/null 2>&1 -u $USER -g $GROUP -b $ADDRESS:$PORT -t $CONF >/dev/null 2>&1
Test everything works
reboot
BE PATIENT, ]po[ can take up to 1 min to start after rebooting.
5. Config
Look into config file (/web/projop/etc/config.tcl) for tuning your server sitename, listening port, etc
6. Enjoy
Again, spacial thanks to Martin Van Es for mailing me with the tips on this update.
Hi Dann,
“ERROR, “ERROR: function to_date(timestamp with time zone, unknown) does not exist”
This is a problem of the version of Postgres you’re using (http://www.mkyong.com/database/to_date-function-between-postgresql-82-and-83/)
Try using 8.1 as mentioned in instalation manual on debian or maybe 8.2 will work fine.
Kind Regards
Database operation “select” failed
(exception ERROR, “ERROR: function to_date(timestamp with time zone, unknown) does not exist
LINE 14: , (to_date(start_date,’YYYY-MM-DD HH24:MI:SS’) – to_date…
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
“)
pqerror was: “ERROR: function to_date(timestamp with time zone, unknown) does not exist
LINE 14: , (to_date(start_date,’YYYY-MM-DD HH24:MI:SS’) – to_date…
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
”
(Status of PQexec call: PGRES_FATAL_ERROR)
SQL:
select
to_char(start_date, ‘YYYY-MM-DD HH24:MI:SS’) as ansi_start_date,
to_char(end_date, ‘YYYY-MM-DD HH24:MI:SS’) as ansi_end_date,
to_number(to_char(start_date,’HH24′),’90’) as start_hour,
to_number(to_char(end_date,’HH24′),’90’) as end_hour,
to_number(to_char(end_date,’MI’),’90’) as end_minutes,
coalesce(e.name, a.name) as name,
coalesce(e.status_summary, a.status_summary) as status_summary,
e.event_id as item_id,
cit.type as item_type,
cals.calendar_id,
cals.calendar_name
, (to_date(start_date,’YYYY-MM-DD HH24:MI:SS’) – to_date(‘2011-03-20 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’)) as day_of_week
from
acs_activities a,
acs_events e,
timespans s,
time_intervals t,
calendars cals,
cal_items ci left join
cal_item_types cit on cit.item_type_id = ci.item_type_id
where
e.timespan_id = s.timespan_id
and s.interval_id = t.interval_id
and e.activity_id = a.activity_id
and start_date between
to_date(‘2011-03-20 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’) and to_date(‘2011-03-26 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’)
and ci.cal_item_id= e.event_id
and cals.calendar_id = ci.on_which_calendar
and acs_permission__permission_p (cals.calendar_id, ‘624’, ‘read’) = ‘t’
and e.event_id = ci.cal_item_id
and ((cals.package_id = ‘21531’ and cals.private_p = ‘f’)
or (cals.private_p = ‘t’ and cals.owner_id = ‘624’))
order by to_char(start_date, ‘J’), to_char(start_date,’HH24:MI’)
while executing
“ns_pg_bind select nsdb1 {
select
to_char(start_date, ‘YYYY-MM-DD HH24:MI:SS’) as ansi_start_date,
to_char(end_date, ‘YYYY-MM-DD HH24:MI:SS’) as a…”
(“uplevel” body line 1)
invoked from within
“uplevel $ulevel [list ns_pg_bind $type $db $sql]”
(“postgresql” arm line 2)
invoked from within
“switch $driverkey {
oracle {
return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
}
…”
invoked from within
“db_exec select $db $full_statement_name $sql”
invoked from within
“set selection [db_exec select $db $full_statement_name $sql]”
(“uplevel” body line 2)
invoked from within
“uplevel 1 $code_block ”
invoked from within
“db_with_handle -dbn $dbn db {
set selection [db_exec select $db $full_statement_name $sql]
set counter 0
while { [db_getrow $…”
(procedure “db_foreach” line 36)
invoked from within
“db_foreach dbqd.calendar.www.views.select_items {} {
# Replace $ (variable dollars) by harmless “X”
regsub {\$} $name X name
# Convert f…”
(“uplevel” body line 73)
invoked from within
“uplevel {
if {[info exists url_stub_callback]} {
# This parameter is only set if this file is called from .LRN.
# This way I make sure …”
(procedure “code::tcl::/web/projop/packages/calendar/www/view-week-displ…” line 2)
invoked from within
“code::tcl::$__adp_stub”
invoked from within
“if { [file exists $__adp_stub.tcl] } {
# ensure that data source preparation procedure exists and is up-to-date
adp_init tcl $__adp_stub
…”
(“uplevel” body line 3)
invoked from within
“uplevel {
if { [file exists $__adp_stub.tcl] } {
# ensure that data source preparation procedure exists and is up-to-date
adp_init t…”
(procedure “adp_prepare” line 2)
invoked from within
“adp_prepare ”
(procedure “template::adp_parse” line 30)
invoked from within
“template::adp_parse /web/projop/packages/calendar/www/view-week-display {base_url /calendar/ date 2011-03-24 package_id 21531 show_calendar_name_p 0 r…”
(“uplevel” body line 1)
invoked from within
“uplevel [list template::adp_parse [template::util::url_to_file $template [ad_conn file]] $template_params]”
(procedure “ad_parse_template” line 15)
invoked from within
“ad_parse_template -params $params “/packages/calendar/www/view-week-display””
(procedure “im_calendar_home_component” line 10)
invoked from within
“im_calendar_home_component”
(“uplevel” body line 1)
invoked from within
“uplevel 1 $component_tcl”
invoked from within
“set component_html [uplevel 1 $component_tcl]”
(“uplevel” body line 8)
invoked from within
“uplevel 1 $code_block ”
(“1” arm line 1)
invoked from within
“switch $errno {
0 {
# TCL_OK
}
1 {
# TCL_ERROR
…”
(“while” body line 20)
invoked from within
“while { [db_getrow $db $selection] } {
incr counter
if { [info exists array_val] } {
unset array_val
…”
(“uplevel” body line 5)
invoked from within
“uplevel 1 $code_block ”
invoked from within
“db_with_handle -dbn $dbn db {
set selection [db_exec select $db $full_statement_name $sql]
set counter 0
while { [db_getrow $…”
(procedure “db_foreach” line 36)
invoked from within
“db_foreach get_plugins $plugin_sql {
if {$any_perms_set_p > 0 && “f” == $perm} { continue }
if {“” == $sort_order} { set sort_order $default_sort…”
(procedure “im_component_bay” line 71)
invoked from within
“im_component_bay left”
invoked from within
“append __adp_output [im_component_bay left] ”
(“uplevel” body line 24)
invoked from within
“uplevel {
set __adp_output “”
set __adp_master [template::util::url_to_file “[ad_parameter -package_id [ad_conn subsite_id] DefaultMaster …”
(procedure “template::code::adp::/web/projop/packages/intranet-core/www/…” line 2)
invoked from within
“template::code::${template_extension}::$__adp_stub”
(procedure “template::adp_parse” line 68)
invoked from within
“template::adp_parse [file root [ad_conn file]] {}”
(procedure “adp_parse_ad_conn_file” line 5)
invoked from within
“$handler”
(“uplevel” body line 2)
invoked from within
“uplevel $code”
invoked from within
“ad_try {
$handler
} ad_script_abort val {
# do nothing
}”
invoked from within
“rp_serve_concrete_file [ad_conn file]”
(procedure “rp_serve_abstract_file” line 60)
invoked from within
“rp_serve_abstract_file “$root/$path””
(“uplevel” body line 2)
invoked from within
“uplevel $code”
invoked from within
“ad_try {
rp_serve_abstract_file “$root/$path”
set tcl_url2file([ad_conn url]) [ad_conn file]
set tcl_url2path_info…”
Hi Ivan,
Are you still here because the latest post from you is quite old !
Febrero 15th, 2010 at 23:13.
I contact you because i’ve tried many install of Project Open and none of them work.
The problems are :
– Debian Etch it’s now out of date (Squeeze is the current release)
– Postgresql 8.1 is not available anymore
___
So It doesn’t work for all these reasons.
Do you have a repository where we can get those packages.
Do you plan to publish a new install tutorial.
Sincerly.
Thierry Forest
Please help me.
I did everything and on starting de aolserver.
I have this error:
[19/Jun/2015:15:33:06][25763.1407223616][-main-] Notice: nsd.tcl: starting to read config file…
[19/Jun/2015:15:33:21][25763.1407223616][-main-] Error: Tcl exception:
no files matched glob pattern “/usr/lib/aolserver4/lib/thread*/libthread*.so”
while executing
“glob ${homedir}/lib/thread*/libthread*[info sharedlibextension]”
invoked from within
“lindex [glob ${homedir}/lib/thread*/libthread*[info sharedlibextension]] 0”
invoked from within
“ns_param libthread [lindex [glob ${homedir}/lib/thread*/libthread*[info sharedlibextension]] 0]”
[19/Jun/2015:15:33:21][25763.1407223616][-main-] Fatal: config error
Thanks.
Does one merely wish money or do you need to truly
have the choice of additional prizes.