Serving the World since 1996
UniMatrix xSP extensively supports Open Source Software
We bill for BRAINS and BANDWIDTH -- not BRAND MARKETING
Ogo installation in Centos 5 with apache 2.2
Tramès per warp3r a Dj, 2007-08-30 16:49.
Table of Contents
- Introduction and copyright
- Versioning
- Adding repositories to yum
- Installing OGo and its dependencies
- Setup Postgresql to accept tcp logins
- Configuring the OGo database
- Patch, Compile and install apache module (getting apache devel stuff and so)
- Setup apache with virtualhost support (really useful)
- Feedback
1. Introduction and license
This guide aims to provide a useful list of tasks to get your installation of OGo (Open Groupware) under Centos 5 and Apache 2.2
All this document is provided under the terms of the GNU/FDL version 1.2 license. You may use , modify and distribute this document under the terms of the specified license
(c) Jordi Molina Casas (warper)
Some of this documentation contains parts of the offitial instructions for fedora, located at http://www.opengroupware.org/en/install/postgresql.html and to the code attached to the bugzilla note http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1719 adapted for Centos 5.
The script is made by Adam Tauno Williams, so thanks to him. I want to thank the authors of the official installation guide, too.
For any feedback, please see the end of the document
2. Versioning
Current Document release: 0.5, August 30th, 2007
This document has been written to use the following versions:
- OGo 1.1.7
- Sope 4.7.1
- Latest libfoundation libs
3. Adding repositories to yum
The first step we must achieve to properly get our installation of OGo running on Centos5, is adding its repositories to the yum configuration file, we'll add the following lines in the end of the /etc/yum.conf file:
[ogo-releases]
name=OpenGroupware.org release builds
baseurl=http://download.opengroupware.org/nightly/packages/centos5/releases/opengroupware-1.1.7-close/
[sope-releases]
name=SOPE release builds
baseurl=http://download.opengroupware.org/nightly/packages/centos5/releases/sope-4.7.1-fwd/
[libfoundation-releases]
name=Libfoundation release builds
baseurl=http://download.opengroupware.org/nightly/packages/centos5/releases/ThirdParty/
After doing this, you should add the GPG key to the RPM engine of your machine by issuing the following command:
rpm --import http://download.opengroupware.org/nightly/packages/RPM-GPG-KEY.opengroupware
4. Installing OGo and its dependencies
Issue the following commands to both update your local yum database and install OGo and its dependencies:
yum update
yum install ogo-meta
5. Setup Postgresql to accept tcp logins
In centos 5, you've to change the auth model of PostgreSQL to ensure that localusers can authenticate directly into their databases, to do so, make the following changes to the file /var/lib/pgsql/data/pg_hba.conf:
Replace
host all all 127.0.0.1/32 ident sameuser
With
host all all 127.0.0.1/32 trust
Then, restart PostgreSQL
service postgresql restart
6. Configuring the OGo database
To configure the OGo database, perform the following commands:
su - root
su - postgres
createdb OGo
createuser -A -D OGo
pushd /usr/local/lib/opengroupware.org-1.1/commands/OGo.model
psql -h localhost OGo OGo
You'll be inside psql terminal, run the following:
Welcome to psql 7.3.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
OGo=> \i Resources/pg-build-schema.psql
[output cut]
OGo=> \q
Once you are done with this, switch to user ogo and perform the following commands to link the ogo user with the OGo database:
su - root
su - ogo
Defaults write NSGlobalDomain LSConnectionDictionary '{databaseName = OGo; hostName = localhost; password = ""; port = 5432; userName = OGo}'
Defaults write NSGlobalDomain LSAdaptor PostgreSQL
To check if it's properly done, do the following:
Defaults read NSGlobalDomain LSConnectionDictionary
7. Patch, Compile and install apache module
Here comes the hardpart, I already had most of the devel libraries installed, so I don't know what will be necessary to install in a clean Centos5 environment. Hopefully installing the packages that I specify will install also the rest of dependancies.
But, first, a little bit of theory:
Why do I have to compile something if I have all the rpm's
Well, you have the rpm's, but it turns out that the apache module used to connect apache with the OpenGroupware server is build with compatibility with Apache 1.3 in mind. Seems that Apache 2.2 has removed such compatibility and you have to change some stuff. Don't panic! Some people reported that with the bugzilla tool and you may find (at the beginning of the document) a reference to the Bugzilla note with full explanation on how to bypass this.
If you want to see the error by yourself, try starting/restarting your apache server at this stage:
service httpd restart
You'll get the following error:
Cannot load /etc/httpd/modules/ngobjweb_module.so into server:
/etc/httpd/modules/ngobjweb_module.so:
Undefined symbol "ap_http_method"
Here are the steps to fix it for Centos 5.
First of all, get the apache development tools:
yum install httpd-devel
And now, perform the following commands as root:
cd
curl -o sope-mod_ngobjweb-trunk-latest.tar.gz http://download.opengroupware.org/nightly/sources/trunk/sope-mod_ngobjweb-trunk-latest.tar.gz
tar xf sope-mod_ngobjweb-trunk-latest.tar.gz
cd sope-mod_ngobjweb/
cp handler.c handler.c.original
sed "s/ap_http_method(/ap_http_scheme(/g" handler.c \
| sed "s/ap_run_http_method(/ap_run_http_scheme(/g" > handler_new.c
mv handler_new.c handler.c
apxs -c *.c
for file in *.o
do
ld -Bshareable -o $(basename $file .o).so $file
done
make all
cp ngobjweb_module.so /etc/httpd/modules
cp mod_ngobjweb.so /etc/httpd/modules
Now restart httpd:
service httpd restart
If everything went ok, you won't get any errors!
To test your server, try the following
1. Start the OGo server:
ogo-webui-1.1 -WOPort 20000
2. Get your compatible web browser to the following url: http:///OpenGroupware
You should see the OpenGroupware server there :)
8. Setup apache with virtualhost support (really useful)
Now everything is working, but there is something I don't like on the original setup, and it's that it takes the whole Apache for OpenGroupware. I prefer to have separate virtualhosts per application, to avoid confusing the final user.
Achieve this with OGo is quiet easy, just replace the following files:
/etc/httpd/conf.d/ngobjweb.conf
/etc/httpd/conf.d/ogo-webui.conf
/etc/httpd/conf.d/ogo-xmlrpcd.conf
/etc/httpd/conf.d/ogo-zidestore.conf
with a new file (i.e. /etc/httpd/conf.d/ogo.conf) containing the following:
ServerName opengroupware
#Here we load the 'mod_ngobjweb.so' module
#
LoadModule ngobjweb_module /etc/httpd/modules/mod_ngobjweb.so
# configuration needed to access the OGo webui
#
# explicitly allow access
Order allow,deny
Allow from all
# required aliases
AliasMatch ^/OpenGroupware([0-9a-zA-Z]{1})([0-9a-zA-Z]{1,})\.woa/WebServerResources/(.*) /usr/local/share/opengroupware.org-$1.$2/www/$3
Alias /ArticleImages /var/lib/opengroupware.org/news
#
# hook up
SetAppPort 20000
SetHandler ngobjweb-adaptor
# configuration needed to access the OGo XMLRPCd via http
#
# hook up
SetAppPort 22000
SetHandler ngobjweb-adaptor
# configuration needed to access the OGo ZideStore via http
#
# hook up
SetAppPort 21000
SetHandler ngobjweb-adaptor
You can change opengroupware with wathever the people is accessing the host and modify the locations so people can access OpenGroupware by accessing http://vhostname rather than by http://vhostname/OpenGroupware, depending on your taste!


