mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-29 19:33:54 +01:00
416 lines
17 KiB
Plaintext
416 lines
17 KiB
Plaintext
<!doctype linuxdoc system>
|
|
|
|
<!-- LinuxDoc file was created by hand by <Dan Kuykendall> 7 July 2000
|
|
Subsequently hacked upon by Stephen Brown September And October 2000 -->
|
|
<article>
|
|
<title>
|
|
phpGroupWare HOWTO
|
|
</title>
|
|
<author>
|
|
Joseph Engo <jengo@phpgroupware.org>,
|
|
Dan Kuykendall <dan@kuykendall.org>,
|
|
Stephen Brown <blinky@phpgroupware.net>
|
|
</author>
|
|
<date>
|
|
v1.3, 17 October 2000
|
|
</date>
|
|
<abstract>
|
|
<!-- $Id$ -->
|
|
This document explains how to install and configure phpGroupWare.
|
|
</abstract>
|
|
|
|
<toc>
|
|
<sect>Introduction
|
|
<p>
|
|
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.
|
|
<p>It should run on all systems where PHP is available and currently supports MySQL and PostgreSQL.
|
|
</p>
|
|
<sect1>What is phpGroupWare and why should I use it?
|
|
<p>
|
|
phpGroupWare is:<p>
|
|
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.<P>
|
|
|
|
You should use it if:<p>
|
|
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?
|
|
</p>
|
|
<sect>Installation
|
|
<sect1>Requirements
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect1>Tested Systems
|
|
<p>
|
|
Known compatible software
|
|
<itemize>
|
|
<item>PHP 3.0.15+ or PHP 4.0.x (preferred)
|
|
<item>Apache 1.3.x
|
|
<item>MySQL 3.22.25 or greater
|
|
<item>MySQL 3.23.10 or greater
|
|
<item>Courier IMAP 0.33+ for IMAP (optionally with vmailmgr)
|
|
<item>qmail 1.03 for SMTP and POP
|
|
<item>sendmail for SMTP
|
|
</itemize>
|
|
|
|
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.
|
|
</p>
|
|
<sect1>Obtaining phpGroupWare
|
|
<p>
|
|
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.
|
|
<sect2>Released Versions
|
|
<p>
|
|
The downloads section on the <url url="http://www.phpgroupware.org/"> site
|
|
contains links to the most recent releases, and several mirror sites
|
|
for the releases.
|
|
</p>
|
|
<sect2>Developer's version from CVS
|
|
<p>
|
|
If you have never used CVS, you may want to read through the doucmentation
|
|
found at <url url="http://www.cvshome.org/">.
|
|
The CVS pages for the core and apps projects can be found at
|
|
<url url="http://sourceforge.net/cvs/?group_id=7305" name="phpGroupWare Core CVS">, and
|
|
<url url="http://sourceforge.net/cvs/?group_id=9787" name="phpGroupWare Apps CVS">.
|
|
Follow the directions for <bf>Anonymous CVS access</bf> and you should
|
|
have the most recent development copy of phpGroupWare in no time.
|
|
</p>
|
|
|
|
<sect1>Installing on Tested Systems
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect1>Create a database and user for phpGroupWare
|
|
<p>
|
|
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.
|
|
<sect2>Adding DB and users in MySQL
|
|
<p>The quick stepse to get going on mysql are as follows (please consult the offical MySQL
|
|
documentation for the details).
|
|
|
|
<tt>mysqladmin create phpgroupware</tt> - creates the blank database
|
|
|
|
Go into the mysql command line utility with <tt>mysql mysql</tt> 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:
|
|
<verb>
|
|
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')
|
|
</verb>
|
|
you must then reload the grant tables with <tt>mysqladmin reload</tt> or <tt>refresh privledges</tt> from the mysql utility.
|
|
</p>
|
|
<sect2>PostgereSQL install
|
|
<p>
|
|
This is from <tt>gnrfan</tt> 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:
|
|
<tt>$postmaster -i -D /home/[username]/[dataDir]</tt>
|
|
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:
|
|
<tt>$createdb phpgroupware</tt> assumming that you would name the database phpgroupware.
|
|
</p>
|
|
<sect1>Configure phpGroupWare
|
|
<p>
|
|
Copy the <tt>header.inc.php.sample</tt> file to
|
|
<tt>header.inc.php</tt> and edit the file, following the
|
|
directions in the comments.
|
|
<p>
|
|
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
|
|
<tt>header.inc.php</tt>. Setup will attempt to determine what version
|
|
of the phpGroupWare database you have installed, and upgrade to the most recent
|
|
version.
|
|
|
|
<bf>NOTE:</bf>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.
|
|
<p>
|
|
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 <tt>chown
|
|
nobody.nobody</tt> and <tt>chmod 700</tt> 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.
|
|
<p>
|
|
If you do not have access to root, create this file and run it.
|
|
<verb>
|
|
<?php
|
|
if (mkdir("/path/to/temp/directory",0700)) {
|
|
echo "Directory created successfully";
|
|
} else {
|
|
echo "Error creating directory";
|
|
}
|
|
</verb>
|
|
If you have access to cron, you may want to setup the files in the cron
|
|
directory.
|
|
<p>
|
|
stalesessions.pl - There are 2 reasons for this file.
|
|
<itemize>
|
|
<item>Users always forget to logout. This way the session doesn't sit around forever, creating a possible security risk.
|
|
<item>The email system requires plain text passwords which are stored in the sessions table.
|
|
</itemize>
|
|
|
|
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.
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<sect>Testing the install
|
|
<p>
|
|
If your config is setup properly you can now login. Point your browser to the
|
|
installed location and login with the username <tt>demo</tt> and the password is <tt>1234</tt><newline>
|
|
At this point it would be a good idea to create a new user with administrative privileges and
|
|
delete the old one.
|
|
</p>
|
|
<sect>Installing additional applications
|
|
<p>
|
|
Once you have the core phpGroupWare install up and running,
|
|
you may want to download and install additional applications.
|
|
|
|
You should consult any <tt>README</tt> or <tt>INSTALL</tt>
|
|
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 <tt>lang.sql</tt>)
|
|
|
|
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 <url url="http://sourceforge.net/phpgwapps/"> for
|
|
more on this and other applications).
|
|
<itemize>
|
|
<item>Download the .tar.gz file for the application, or check out the source
|
|
with cvs with
|
|
<verb>export CVSROOT=':pserver:anonymous@cvs.phpgroupware.sourceforge.net:/cvsroot/phpgwapps'
|
|
cvs login (just hit enter if prompted for a password)
|
|
cvs co headlines</verb>
|
|
|
|
<item>Move the <tt>headlines</tt> directory into your phpGroupWare
|
|
install directory.
|
|
|
|
<item>Log into phpGroupWare as an administrative user, and go to the Administration page.
|
|
|
|
<item>In the first section, choose the <tt>Applications</tt> link
|
|
|
|
<item>Click on add, and fill in the form.
|
|
<descrip>
|
|
<tag/Application name/ should be identical to the name
|
|
of the directory you moved into the phpGroupWare install, in this case use <tt>headlines</tt>
|
|
<tag/Application Title/this is shown in the navigation bar and other places to refer to the
|
|
new application. Enter <tt>Headlines</tt> for this example.
|
|
<tag/Enabled/This can be used to disable an application for all users temporially. You
|
|
should normal check the box to enable the application.
|
|
</descrip>
|
|
<item>Back in the Administration page, you need to enable the application for specific users
|
|
or user groups by editing them, and checking the new <tt>Headlines</tt> box that appears
|
|
in the middle of the account editing page.
|
|
<item>Once you have added the Headlines app to your account, you should see a Headlines
|
|
entry in the Administration and Preferences pages, and there should be an icon for
|
|
the Headlines application in the navigation bar.
|
|
<item>Once you enable a few of the Headlines sites through the Administration page link, you
|
|
should see headlines grabbed from the sites you selected when you click on the Headlines
|
|
icon in the navigation bar.
|
|
</itemize>
|
|
</p>
|
|
<sect>Trouble-shooting
|
|
<p>
|
|
<bf>WARNING!</bf> 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
|
|
|
|
<sect1>I get "Unable to open mailbox" when using the email application
|
|
<P>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.
|
|
</p>
|
|
|
|
<sect1>It seems to hang when I try to read my mail
|
|
<P>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
|
|
<code>
|
|
set_time_limit(0);
|
|
</code>
|
|
to the top of the inc/phpgwapi/phpgw_msg_pop3.inc.php file, just before
|
|
the line <verb>class msg extends msg_common</verb>
|
|
|
|
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.
|
|
</p>
|
|
|
|
<sect1>When I log in I see the directory listing instead of a web page
|
|
<P>If you are using Apache, this often means you need to add
|
|
<tt>.php</tt> to the <tt>DirectoryIndex</tt> line in your httpd.conf file.
|
|
|
|
For example:
|
|
<code>
|
|
DirectoryIndex index.php index.php3 index.html index.htm index.cgi
|
|
</code>
|
|
</p>
|
|
<sect1>I get garbage that looks like code when I go to the phpGroupWare URL
|
|
<P>This is often because you have php3 installed, which does not map <tt>.php</tt> to the PHP engine.
|
|
|
|
For PHP3:
|
|
<code>
|
|
AddType application/x-httpd-php3 .php3 .php
|
|
</code>
|
|
For PHP4:
|
|
<code>
|
|
AddType application/x-httpd-php .php3 .php
|
|
</code>
|
|
</p>
|
|
<sect>Known working systems
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect1>Seek3r has tested
|
|
<p>
|
|
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
|
|
</p>
|
|
<sect1>blinky has tested
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect1>Jengo has tested
|
|
<p>
|
|
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
|
|
</p>
|
|
<p>
|
|
Also, confirmation through IRC of phpGroupware working on Win2k with IIS5.0, PHP4.0.2 and MySQL just recently
|
|
</p>
|
|
<sect>About this document
|
|
<sect1>New versions
|
|
<p>
|
|
The newest version of this document can be found on our website <url url="http://www.phpgroupware.org"> as SGML source, HTML, or TEXT.
|
|
</p>
|
|
<sect1>Comments
|
|
<p>
|
|
Comments on this HOWTO should be directed to the phpGroupWare developers mailing list
|
|
<url url="mailto:phpgroupware-developers@lists.sourceforge.net" name="phpgroupware-developers@lists.sourceforge.net">.<P>
|
|
To subscribe, go to <url url="http://sourceforge.net/mail/?group_id=7305"
|
|
name="http://sourceforge.net/mail/?group_id=7305">
|
|
</p>
|
|
<sect1>History
|
|
<p>
|
|
This document was started by Joseph Engo and reworked by Dan Kuykendall.
|
|
</p>
|
|
<sect1>Version History
|
|
<p>
|
|
Old Version
|
|
</p>
|
|
<p>
|
|
<itemize>
|
|
<item>Created by Jengo, wasn't in SGML HOWTO format.
|
|
</itemize>
|
|
<p>
|
|
v1.0 (July 6, 2000)
|
|
</p>
|
|
<p>
|
|
<itemize>
|
|
<item>Built proper SGML version.
|
|
<item>Included the FAQ.
|
|
<item>Other minor additions.
|
|
</itemize>
|
|
</p>
|
|
<p>
|
|
v1.1 (September 27-29, 2000) - blinky
|
|
</p>
|
|
<p>
|
|
<itemize>
|
|
<item>Added Testing Install section
|
|
<item>Added Trouble-shooting section
|
|
<item>Added description of application installation
|
|
<item>Changes for the new setup program
|
|
</itemize>
|
|
</p>
|
|
<p>
|
|
v1.2 (Early October 2000) - blinky
|
|
</p>
|
|
<p>
|
|
<itemize>
|
|
<item>Info about creatign MySQL DB and user
|
|
<item>Partial PostgreSQL info from gnrfan
|
|
</itemize>
|
|
</p>
|
|
<sect1>Copyrights and Trademarks
|
|
<p>
|
|
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
|
|
</p>
|
|
<p>
|
|
A copy of the license is available at
|
|
<url url="http://www.gnu.org/copyleft/fdl.txt" name="GNU Free Documentation License">.
|
|
</p>
|
|
<sect1>Acknowledgments and Thanks
|
|
<p>
|
|
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.
|
|
</p>
|
|
</article>
|