|
|
|
#
|
|
|
|
# Postfix Admin
|
|
|
|
# by Mischa Peters <mischa at high5 dot net>
|
|
|
|
# Copyright (c) 2002 - 2005 High5!
|
|
|
|
# Licensed under GPL for more info check GPL-LICENSE.TXT
|
|
|
|
#
|
|
|
|
|
|
|
|
REQUIRED!!
|
|
|
|
----------
|
|
|
|
- You are using Postfix 2.0 or higher.
|
|
|
|
- You are using Apache 1.3.27 / Lighttpd 1.3.15 or higher.
|
|
|
|
- You are using PHP 5.1.2 or higher.
|
|
|
|
- You are using MySQL 3.23 or higher (5.x recommended) OR PostgreSQL 7.4 (or higher)
|
|
|
|
|
|
|
|
|
|
|
|
READ THIS FIRST!
|
|
|
|
----------------
|
|
|
|
When this is an upgrade from a previous version of Postfix Admin, please read
|
|
|
|
DOCUMENTS/UPGRADE.TXT also!
|
|
|
|
|
|
|
|
If you need to setup Postfix to be able to handle Virtual Domains and Virtual
|
|
|
|
Users check out:
|
|
|
|
|
|
|
|
- the PostfixAdmin documentation in the DOCUMENTS/ directory
|
|
|
|
- our wiki at http://sourceforge.net/apps/mediawiki/postfixadmin/
|
|
|
|
|
|
|
|
There are also lots of HOWTOs around the web. Be warned that many of them
|
|
|
|
(even those listed below) may be outdated or incomplete.
|
|
|
|
Please stick to the PostfixAdmin documentation, and use those HOWTOs only if
|
|
|
|
you need some additional information that is missing in the PostfixAdmin
|
|
|
|
DOCUMENTS/ folder.
|
|
|
|
- http://codepoets.co.uk/postfixadmin-postgresql-courier-squirrelmail-debian-etch-howto-tutorial (Debian+Courier+PostgreSQL+Postfix+Postfixadmin)
|
|
|
|
- http://bliki.rimuhosting.com/space/knowledgebase/linux/mail/postfixadmin+on+debian+sarge (Postfix+MySQL+Postfixadmin+Dovecot)
|
|
|
|
- http://en.gentoo-wiki.com/wiki/Virtual_mail_server_using_Postfix,_Courier_and_PostfixAdmin (Postfix+MySQL+Postfixadmin+Courier)
|
|
|
|
|
|
|
|
|
|
|
|
1. Unarchive new Postfix Admin
|
|
|
|
------------------------------
|
|
|
|
Make sure that you are in your WWW directory and then unarchive the
|
|
|
|
Postfix Admin archive (whatever the filename is):
|
|
|
|
|
|
|
|
$ tar -zxvf postfixadmin-$version.tgz
|
|
|
|
|
|
|
|
|
|
|
|
2. Setup a Database
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
With your chosen/preferred database server (i.e. MySQL or PostgreSQL),
|
|
|
|
you need to create a new database. A good name for this could be :
|
|
|
|
|
|
|
|
postfix
|
|
|
|
|
|
|
|
The mechanics of creating the database vary depending on which server
|
|
|
|
you are using. Most users will find using phpMyAdmin or phpPgAdmin the
|
|
|
|
easiest route.
|
|
|
|
|
|
|
|
If you wish to use the command line, you'll need to do something like :
|
|
|
|
|
|
|
|
For MySQL:
|
|
|
|
CREATE DATABASE postfix;
|
|
|
|
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'choose_a_password';
|
|
|
|
GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';
|
|
|
|
|
|
|
|
For PostgreSQL:
|
|
|
|
CREATE USER postfix WITH PASSWORD 'whatever';
|
|
|
|
CREATE DATABASE postfix OWNER postfix ENCODING 'unicode';
|
|
|
|
|
|
|
|
|
|
|
|
3. Configure PostfixAdmin so it can find the database
|
|
|
|
-----------------------------------------------------
|
|
|
|
|
|
|
|
Create a config.local.php file for your local configuration:
|
|
|
|
|
|
|
|
<?php
|
|
|
|
$CONF['database_type'] = 'mysqli';
|
|
|
|
$CONF['database_user'] = 'postfix';
|
|
|
|
$CONF['database_password'] = 'postfixadmin';
|
|
|
|
$CONF['database_name'] = 'postfix';
|
|
|
|
|
|
|
|
$CONF['configured'] = true;
|
|
|
|
?>
|
|
|
|
|
|
|
|
See config.inc.php for all available config options and their default value.
|
|
|
|
|
|
|
|
You can also edit config.inc.php instead of creating a config.local.php,
|
|
|
|
but this will make updates harder and is therefore not recommended.
|
|
|
|
|
|
|
|
The most important settings are those for your database server.
|
|
|
|
|
|
|
|
You must also change the line that says :
|
|
|
|
|
|
|
|
$CONF['configured'] = false;
|
|
|
|
|
|
|
|
to
|
|
|
|
|
|
|
|
$CONF['configured'] = true;
|
|
|
|
|
|
|
|
|
|
|
|
PostfixAdmin does not require write access to any files except the tempates_c
|
|
|
|
directory (smarty cache). You can therefore leave the files owned as root (or
|
|
|
|
another user); as long as the web server user (e.g. www-data) can read them, it
|
|
|
|
will be fine.
|
|
|
|
For templates_c/, allow write access (only) for the web server user (e. g. www-data).
|
|
|
|
The easiest way to do this is chown -R www-data templates_c
|
|
|
|
|
|
|
|
The next 'step', is optional. Only do it, if other non-trusted users have access
|
|
|
|
to your user:
|
|
|
|
|
|
|
|
Depending on your environment, you may want to protect the database username
|
|
|
|
and password stored in config.inc.php - if so, you could move them into the
|
|
|
|
Apache configuration file (which can be set to be visible only by root) using
|
|
|
|
something like the following in your VirtualHost definition :
|
|
|
|
|
|
|
|
SetEnv DB_USER "postfix"
|
|
|
|
SetEnv DB_PASS "opensesame"
|
|
|
|
|
|
|
|
config.inc.php would then be able to access these through :
|
|
|
|
|
|
|
|
$CONF['database_user'] = $_SERVER['DB_USER']
|
|
|
|
|
|
|
|
|
|
|
|
4. Check settings, and create Admin user
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
Hit http://yourserver.tld/postfixadmin/setup.php in a web browser.
|
|
|
|
|
|
|
|
You should see a list of 'OK' messages.
|
|
|
|
|
|
|
|
The setup.php script will attempt to create the database structure
|
|
|
|
(or upgrade it if you're coming from a previous version).
|
|
|
|
|
|
|
|
Assuming everything is OK you can specify a password (which you'll
|
|
|
|
need to use setup.php again in the future); when you submit the form,
|
|
|
|
the hashed value (which you need to enter into config.inc.php is echoed
|
|
|
|
out - with appropriate instructions on what to do with it).
|
|
|
|
|
|
|
|
create the admin user using the form displayed.
|
|
|
|
|
|
|
|
5. Use PostfixAdmin
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
This is all that is needed. Fire up your browser and go to the site that you
|
|
|
|
specified to host Postfix Admin.
|
|
|
|
|
|
|
|
6. Integration with Postfix, Dovecot etc.
|
|
|
|
-----------------------------------------
|
|
|
|
|
|
|
|
Now that PostfixAdmin is working, you need to do some configuration in Postfix,
|
|
|
|
Dovecot etc. so that they use the domains, mailboxes and aliases you setup in
|
|
|
|
PostfixAdmin.
|
|
|
|
|
|
|
|
The files in the DOCUMENTS/ directory explain which settings you need to
|
|
|
|
do/change.
|
|
|
|
|
|
|
|
7. XMLRPC Integration (OPTIONAL!)
|
|
|
|
--------------------------------
|
|
|
|
|
|
|
|
See ADDITIONS/squirrelmail-plugin
|
|
|
|
See xmlrpc.php - only a subset of Postfixadmin's functionality is currently exposed.
|
|
|
|
See config.inc.php - see xmlrpc_enabled key (defaults to off).
|
|
|
|
|
|
|
|
You'll need to install a copy of the Zend Framework within Postfixadmin (see header within xmlrpc.php)
|
|
|
|
You'll need to enable the xmlrpc link (see config.inc.php)
|
|
|
|
|
|
|
|
8. More information
|
|
|
|
-------------------
|
|
|
|
As of March 2007, PostfixAdmin moved to SourceForge. For the
|
|
|
|
forum posts and source updates, see:
|
|
|
|
|
|
|
|
https://sourceforge.net/projects/postfixadmin
|
|
|
|
|
|
|
|
There is also #postfixadmin on irc.freenode.net.
|