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 available and currently supports MySQL and PostgreSQL.
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?
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 preferred. 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.
Known compatible software
Example configurations that the CVS versions have been up and running on are listed at the end of this document. We have reports of phpGroupWare working on Windows NT and OS/2, and using Oracle as the database.
While we are still in the Beta phase of phpGroupWare, you may want to track the CVS copy as closely as possible. The released versions are more stable, but often contain bugs that have been fixed in the CVS version.
The downloads section on the http://www.phpgroupware.org/ site contains links to the most recent releases, and several mirror sites for the releases.
If you have never used CVS, you may want to read through the doucmentation found at http://www.cvshome.org/. The CVS pages for the core and apps projects can be found at phpGroupWare Core CVS, and phpGroupWare Apps CVS. Follow the directions for Anonymous CVS access and you should have the most recent development copy of phpGroupWare in no time.
After you have met the additional software requirements (working DB, POP3/IMAP server, and PHP), unpack the tarball in the html directory of your webserver. (eg, /home/httpd/html) If you want the phpGroupWare install to appear at a URL other than http://localhost/phpgroupware now is the time to rename the directory or move it around under your document root.
You must create a database for phpGroupWare to use, and we strongly recommend adding a user that only has permission to this new database for phpGroupWare's exclusive use (for security).
Note the host the database engine is on, user, password and database name, you will need them soon.
The quick stepse to get going on mysql are as follows (please consult the offical MySQL documentation for the details).
mysqladmin create phpgroupware
- creates the blank database
Go into the mysql command line utility with mysql mysql
or use
a tool like phpMyAdmin to update the permission tables.
It is recommended that you add a user with no permissions, then
explicitly grant the user access to the phpgroupware database.
The following SQL is an example:
insert into users(Host,User,Password) values('localhost','phpgwuser',PASSWORD('somethinghardtoguess'); insert into db(Host,DB,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Alter_priv) values('localhost','phpgroupware','phpgwuser','Y','Y','Y','Y','Y','Y','Y')you must then reload the grant tables with
mysqladmin reload
or refresh privledges
from the mysql utility.
This is from gnrfan
but has yet to be updated for the recent version of phpGroupWare, although
it should get you started.
To start the postmaster just type at the console:
$postmaster -i -D /home/[username]/[dataDir]
Now if there is an error then is no datadir intitiated (assuming that postgreSQL is installed).
To do that you have to use initdb to create the dataDIR. Please look in
the documentation of posgreSQL or the manual page for initdb for details.
If you have not encountered any error than you are ready to roll.
Now create a database which will be used by the phpGroupWare.
To do that type at the console:
$createdb phpgroupware
assumming that you would name the database phpgroupware.
Copy the header.inc.php.sample
file to
header.inc.php
and edit the file, following the
directions in the comments.
Then point your browser to phpgroupware/setup/ which will
create (or upgrade) the database tables.
You wil be asked to login, using the password set in
header.inc.php
. Setup will attempt to determine what version
of the phpGroupWare database you have installed, and upgrade to the most recent
version.
NOTE:The developers are concentrating on getting the beta working, and have not spent a great deal of time building upgrade scripts from the alpha versions of phpGroupWare. You are advised to backup your existing alpha database before running the setup script to avoid problems!
If you get no error messages, continue on to phpgroupware/setup/config.php to configure phpGroupWare to your system.
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 disable cron_apps in the admin -> applications section to clean out the sessions table during login and logout.
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 with administrative privileges and
delete the old one.
Once you have the core phpGroupWare install up and running, you may want to download and install additional applications.
You should consult any README
or INSTALL
files that come with the new application first, as most require you
to create additional tables in the database, and add additional
translation data to the lang table (typically a file called lang.sql
)
You install the new application within the phpGroupWare install tree by placing the application directory under the root phpGroupWare directory, and enabling the application through the Administration page.
For example, this is the process to install the Headlines application (see http://sourceforge.net/phpgwapps/ for more on this and other applications).
export CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsroot/phpgwapps' cvs login (just hit enter if prompted for a password) cvs co headlines
headlines
directory into your phpGroupWare
install directory.
Applications
link
should be identical to the name
of the directory you moved into the phpGroupWare install, in this case use headlines
this is shown in the navigation bar and other places to refer to the
new application. Enter Headlines
for this example.
This can be used to disable an application for all users temporially. You should normal check the box to enable the application.
Headlines
box that appears
in the middle of the account editing page.WARNING! phpGroupWare is still Beta software, expect some bugs along the way. If you run into a problem not discussed here, contact us through one of the methods listed on the website.
The phpGroupWare developers can often be seen hanging out in #phpGroupWare on irc.openprojects.net if you require real-time help.
Also check the FAQ in this directory for additional common questions, it is available as FAQ.sgml, FAQ.txt and FAQ.html
At the time of this writing (2000-09-27) you must use the same username and password in phpGroupWare that you use to log into your mail server. If you change your password and it still isn't working, try logging out of phpGroupWare (the rightmost icon in the navigation bar) and then log back in.
An preference page to edit the email settings is being developed, and should appear shortly after the second beta release.
This is often a problem if you are using POP3 instead of IMAP, and you have more than a few hundred messages in your mailbox.
By default, php is set up to time-out a request that takes over 30 seconds to complete. phpGroupWare must do a lot of work the first time your POP3 mailbox is opened, and every time you get new mail, which may take more than the 30 second timeout.
You can either clean up your mailbox with another mail program, or add the line
set_time_limit(0);
class msg extends msg_common
If you choose to edit the file, be patient when loading a large POP3 mailbox - the author tested against a mailbox with 2500 messages in it, but it took 15 minutes to load the page. We highly suggest you use IMAP if you expect to have more than a few hundred messages in your mailbox.
If you are using Apache, this often means you need to add
.php
to the DirectoryIndex
line in your httpd.conf file.
For example:
DirectoryIndex index.php index.php3 index.html index.htm index.cgi
This is often because you have php3 installed, which does not map .php
to the PHP engine.
For PHP3:
AddType application/x-httpd-php3 .php3 .php
AddType application/x-httpd-php .php3 .php
A rough description of some of the hardware and software the developers have used to develop phpGroupWare on, oh have confirmed working reports from people in IRC.
phpGroupWare.org runs: Red Hat 6.2, Apache/1.3.12,PHP/4.0.2,mod_perl/1.21,MySQL 3.23.10-alpha,Courier-IMAP 0.33+ with qmail 1.03
phpGroupWare.net runs: Red Hat 6.2,Apache/1.3.14 PHP/4.0.3pl1 mod_ssl/2.7.1 OpenSSL/0.9.6 PHP4.03.pl1,MySQL 3.23.10-alpha,qmail 1.03
dev boxes are variants on: Red Hat 7.0,mysql-3.23.22-6 (from RH7 RPM), and Sendmail, Courier, or qmail+courier IMAP depending on mood.
main test box: Red Hat 6.2,Apache/1.3.12,PHP 3.0.16,PostgreSQL 7.2,Sendmail (from RH6.2)
laptop is rh 6.1, apache 1.3.?, MySQL and PostgreSQL 7.0 w/ PHP 3.0.16, its a P-90 w/ 40 mb ram and a 800 mb hd
Also, confirmation through IRC of phpGroupware working on Win2k with IIS5.0, PHP4.0.2 and MySQL just recently
The newest version of this document can be found on our website http://www.phpgroupware.org as SGML source, HTML, or TEXT.
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
This document was started by Joseph Engo and reworked by Dan Kuykendall.
Old Version
v1.0 (July 6, 2000)
v1.1 (September 27-29, 2000) - blinky
v1.2 (Early October 2000) - blinky
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.
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.