phpGroupWare HOWTO

Joseph Engo <jengo@phpgroupware.org>, Dan Kuykendall <dan@kuykendall.org>

v1.0, 7 July 2000


This document explains how to install and configure phpGroupWare.

1. Introduction

phpGroupWare is a web based groupware application that includes integrated features such as email, calendar, todo list, address book, file manager, headline news, and a trouble ticket system.

It should run on all systems where PHP is avalible and currently supports MySQL and PostgreSQL.

1.1 What is phpGroupWare and why should I use it?

phpGroupWare is:

phpGroupWare is a web based groupware application that includes integrated features such as email, calendar, todo list, address book, file manager, headline news, and a trouble ticket system.

You should use it if:

You would like a powerful groupware system that can be access from anywhere on the Internet. For companies with a distributed user base, it's an ideal solution. Oh, and did I mention that its FREE?

2. Installation

2.1 Requirements

You will need PHP compiled and installed on your system. You will also need MySQL or PostgreSQL setup. If you are planning on using the email system, you will need to have an IMAP server installed and IMAP support compiled into PHP. You can have it installed as an Apache module or command line version, the Apache module is prefered. We will assume that you are running on a Linux or other Unix system for these steps. Windows is supported, but there is no documentation for it currently.

2.2 Tested Systems

On Linux 2.2.x

We have reports of it working on Windows NT, but no details at this time.

2.3 Tested Systems

After you have met the system requirements, unpack the tarball in the html directory of your webserver. (eg, /home/httpd/html)

The first step is to setup the database and create the tables needed. In the doc directory there is a file called create_tables.(name of your database)

Installation with MySQL

We will assume that you are using the database named phpgroupware.

$ mysql phpgroupware -u username -p < create_tables.mysql

Installation with PostgreSQL

We will assume that you are using the database named phpgroupware.

$ psql -d phpgroupware -U username < create_tables.pgsql

2.4 Configure phpGroupWare

Change to the inc directory.
Edit the file called config.inc.php to point to the location of your include files.

Some people might prefer to install their include files in a directory which is not world viewable. For this, you will need to move everything except config.inc.php into another directory and point config.inc.php to that directory. For most installations, the current location of these file should be fine.
Edit globalconfig.inc.php to reflect your system settings. You can choose which programs you would like to have available to your system.
For example, if you do not have access to a IMAP server, you can change $installed["email"] = "Y"; to $installed["email"] = "N";
This would make this program unavaiable to all users regardless of their permissions.

If you are using the email system you will need to create a temporary directory where file uploads will be stored. For security reasons, you should chown nobody.nobody and chmod 700 to that directory. Depending on your system configuration. Default installs of Apache normally run as the user nobody. You may need your system administrator to do this for you if you do not have root access.

If you do not have access to root, create this file and run it.

  <?php 
    if (mkdir("/path/to/temp/directory",0700)) { 
      echo "Directory created successfully"; 
    } else { 
      echo "Error creating directory"; 
    }
If you have access to cron, you may want to setup the files in the cron directory.

stalesessions.pl - There are 2 reasons for this file.

This file is not required, you can simply uncomment the lines indicated in session.class in update_dla(). This will require an extra query during every transaction which could cause performance problems. Also, if there are no logins in a few days, they will sit around and wait for someone to login before they are deleted. If you go this route, you will need to edit the number of seconds until they are deleted. It defaults to 2 hours (7200 secs). If you choose to use the cron program, simply edit the settings for your database and uncomment the line for your database type.

stale_uploads.pl - This will delete file attachments for messages that where not completed. If a users browser crashes, internet connection dies, etc, their files will sit there forever unless deleted. You could add a few lines to logout.php that will look in the temp directory for any stale uploads and delete them. But, once again, it becomes a performance issue.

If your config is setup properly you can now login. Point your browser to the installed location and login with the username demo and the password is 1234
At this point it would be a good idea to create a new user and delete the old one.

3. About this document

3.1 New versions

The newest version of this document can be found on our website http://www.phpgroupware.org as SGML source, HTML, or TEXT.

3.2 Comments

Comments on this HOWTO should be directed to the phpGroupWare developers mailing list phpgroupware-developers@lists.sourceforge.net.

To subscribe, go to http://sourceforge.net/mail/?group_id=7305

3.3 History

This document was started by Joseph Engo and reworked by Dan Kuykendall.

3.4 Version History

Old Version

v1.0 (July 6, 2000)

3.5 Copyrights and Trademarks

Copyright (c) Dan Kuykendall. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation

A copy of the license is available at GNU Free Documentation License.

3.6 Acknowledgements and Thanks

Thanks to Joesph Engo for starting phpGroupWare (at the time called webdistro) and the core of this HOWTO. Thanks to all the developers and users who contribute to making phpGroupWare such a success.