#
# 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 OR PostgreSQL v7.4+


READ THIS FIRST!
----------------

This document describes upgrading from an older PostfixAdmin version
(>= v1.5x)

It's recommend that you install Postfix Admin in a new folder and not
on-top of the old install!! (At the very least, make sure you have backups of 
the database and relevant filesystem!)

When upgrading Postfix Admin, make sure you backup your database before
running upgrade.php.


1. Backup the Database
----------------------
When you install from a previous version make sure you backup your database
first. There are a lot of changes in the database structure since Postfix Admin
1.5.4.

  $ mysqldump -u root -p postfixdb > /tmp/postfixadmin-backup.sql
or
  $ pg_dump -ad -u postfix postfixdb > /tmp/postfixadmin-backup.sql

(Replace postfixdb with your Postfixadmin database's name)

2. 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-X.X.tgz


3. Change permissions
----------------------
Since the database password is stored in the config.inc.php it's a good idea
to have change the permissions for Postfix Admin.

  $ cd /usr/local/www/postfixadmin
  $ find -type f -print0 | xargs -0 chmod 640
  $ find -type f -print0 | xargs -0 chown root:www-data

(the last command assumes your Apache is running with group "www-data")

Since version 3.0 we use smarty templates. That means the templates_c directory
needs to be writeable for your webserver.

  $ cd /usr/local/www/postfixadmin
  $ mkdir templates_c && chmod 750 templates_c && chown -R www-data templates_c

(if your Apache runs as user "www-data")

If you have SELinux enabled, also run (adust the path to match your setup)

  $ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/utils/pfadmin/public/templates_c(/.*)?"
  $ sudo restorecon -Rv /var/www/utils/pfadmin/


4. Configure
------------

Check the config.inc.php file. There you can specify settings that are
relevant to your setup.

Comparing config.inc.php with your previous using "diff" might save you some
time.

You can use a config.local.php file to contain your local settings. 
These will override any defined in config.inc.php - and save some time when upgrading to a new version of PostfixAdmin ;-)

5. Run setup.php
----------------------------------------

Access setup.php through a web browser.

It will attempt to upgrade your database, and also allow you to create a superadmin user.
(In case the database upgrade fails, you can run setup.php?debug=1 to see the last executed query.)

From version 2.3, you need to specify a setup_password in config.inc.php - 
setup.php should guide you through this process. If you do not have a setup_password, type one
into the form, and setup.php will echo out the hashed value (which needs to go into config.inc.php).
The setup_password removes the requirement for you to delete setup.php, and also closes a security hole.

Since version 2.2 of Postfixadmin, setup.php can perform the needed database 
updates automatically .

If you update from 2.1 or older, also create a superadmin account using setup.php.

Note that admin/ has been merged into the main directory. Login with the
superadmin account to setup domains and domain admins.

6. Upgrade your postfix config
------------------------------

Since version 2.3, PostfixAdmin supports alias domains ($CONF['alias_domain']).
If you want to use them, you have to add some queries to your postfix config -
see POSTFIX_CONF for details.


7. Done
-------
This is all that is needed. Fire up your browser and go to the site that you
specified to host Postfix Admin.
