This guide is for CentOS Linux with tar.gz-Version of Openfire. It might work also on Fedora or other Linux distributions. I'm using an external database. It is always a good idea to make an full database backup before updating.
For all instructions here: Turn your brain on, there might be changes in new Openfire versions!
Prepare the update while Openfire is running. First prepare a second Openfire directory and copy openfire and plugins. Then shutdown Openfire, switch Openfire directories and start the new version. Total downtime is only the time Openfire needs for shutdown / startup which can't be avoided.
Assuming your old Openfire is located in /opt/openfire, extract the new version to /opt/openfire_new
Further assumptions are that your Openfire user is called "openfire". During this step Openfire can be running all the time.
% set access rights correctly
chown -R openfire openfire_new/
chgrp -R openfire openfire_new/
chmod -R go-rwx openfire_new/conf
chmod -R go-rwx openfire_new/resources/security
% copy SSL certificates and config file
cp openfire/resources/security/* openfire_new/resources/security/
cp openfire/conf/openfire.xml openfire_new/conf/
% copy all your plugins, do not overwrite search.jar since it is already supplied with Openfire
cp openfire/plugins/*.jar openfire_new/plugins/
chown -R openfire openfire_new/plugins/
chgrp -R openfire openfire_new/plugins/
% create symbolic link: openfire -> openfire.sh
ln -s openfire openfire.sh
% open file openfire with your favorite editor and change the following parameters according to your needs
% give execution right to openfired script
chmod u+x openfired
% open file openfired with your favorite editor and change the following two things
% change user to openfire
% add the following at the beginning of function 'start()'. This is required for automatic startup/shutdown.
This is a really quick and simple step.
% stop Openfire
% switch directories
mv openfire openfire_old
mv openfire_new openfire
% start Openfire again
% check your logfiles for possible problems. If serious problems appear switch back directories and restore your last database backup.