This page is for system administrators who are upgrading Tomcat
.
Overview
The instructions on this page provide guidance on how to upgrade:
- a standard Tomcat setup
- a Tomcat setup with some configuration changes to
server.xml
andweb.xml
.
Most PhixFlow installations use a standard Tomcat setup. Some common variations are:
SSL termination is handled in Tomcat to provide a secure connection. This means you have installed a certificate.
Tomcat uses a non-standard port number.
PhixFlow can export large files because the limit set by
maxPostSize
has been increased or disabled.
To upgrade, we recommend you install the target version of
Tomcat as a new
installation, then move resources and configuration changes from the previous install. This means the common variations listed above will be moved into the new installation.
Tomcat
provides a tool for comparing configuration files between patch versions; for example, for version 9
see https://tomcat.apache.org/migration-9.html#Upgrading_9.0.x. However, at PhixFlow, we have found
it
easier and more reliable to treat even minor upgrades as new installations.
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Linux Before you start
Step 1 CheckOn Linux
The following instructions assume that Tomcat is installed in /opt/tomcat
, as recommended in PhixFlow’s installation instructions. If you have installed Tomcat somewhere else, remember to replace /opt/tomcat
in commands with your installation directory.
Step 1 Identify your current version of Tomcat
(why)At the command line, enter:
Code Block |
---|
$tomcatHome/opt/tomcat/bin/version.sh |
Step
22 Check your
SetupMost PhixFlow installations use a standard Tomcat setup. Some common variations are:
SSL termination is handled in Tomcat to provide a secure connection. This means you have installed a certificate.
Tomcat uses a non-standard port number.
PhixFlow can export large files because the limit allowed by maxPostSize has been increased.
The standard Tomcat setup and the above variations are covered by the following instructions, by re-applying changes to server.xml and web.xml.
If you are not sure whether you have a standard Tomcat setup, you can check by comparing yourconfiguration (if necessary)
You can skip this step if you have notes or a checklist of your configuration.
If you cannot remember what configuration changes you have made to Tomcat, you can find out by comparing your current configuration files to those in a standard installation, as follows.
- Install Find your current version of Tomcat in a temporary location, $standardInstallCurrentVersion
Use diff to compare the conf directories in your current installation and the test installation. diff /opt/tomcat/conf $standardInstallCurrentVersionTomcat on the Tomcat download page:Expand To find out your current version of Tomcat: $tomcatHome/bin/version.sh
Insructions on how to Download and install Tomcat on Install Tomcat on Linux
- for version 8: http://tomcat.apache.org/download-80.cgi
- for version 9: https://tomcat.apache.org/download-90.cgi
- for older versions of Tomcat look for your version under
Archives
→ <your version> →bin
. Download the link with the formatapache-tomcat-VERSION.
tar.gz
Download your current version to a temporary location, for example
/tmp/tmpTomcat
, and unpack it:Code Block cd /tmp mkdir tmpTomcat cd tmpTomcat curl -O https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.95/bin/apache-tomcat-9.0.95-deployer.tar.gz tar xvf apache-tomcat-9*tar.gz --strip-components=1
Use the
diff
command to compare theconf
directory with your current installation'sconf
directory, for example:Code Block diff /opt/tomcat/conf /tmp/tmpTomcat/conf
- Make a note of any differences between your current installation and the test installation. You the two configurations.
You will need to reproduce these changes after the upgradein the new installation in Step 5, below.
In particular, check for changes in:- server.xml
- context.xml
- web.xml
- tomcat-users.xml.
PhixFlow does not recommend updates to this file but you may have enabled internal Tomcat users.
Linux Upgrade Steps
The following instructions assume that tomcat is installed in /opt/tomcat, as recommended in PhixFlow’s installation guide for tomcat. But if you have installed it elsewhere, replace /opt/tomcat with this installation directory.
- Stop Tomcat.
Make a note of any extra files in your current installation's
tomcat/bin
directory. For example, you may have files to integrate with a monitoring agent. Use thediff
command to compare thetomcat/bin
directory with your current installation's tomcat/bin directory, for example:Code Block diff /opt/tomcat/bin /tmp/tmpTomcat/bin
You will copy these files into the new
bin
directory in step 5. Make a note of any extra files in your current installation's
tomcat/lib
directory. For example, you may have files to support connections to additional databases. Usediff
to compare these directories, for example:Code Block diff /opt/tomcat/lib /tmp/tmpTomcat/lib
You will copy these files into the new
tomcat/lib
directory in step 5Note For connections to databases in addition to Oracle, MySQL and MySQL, use Database Driver to configure the additional library files required.
Remove your temporary download. For example:
Code Block cd /tmp rm -r tmpTomcat
Step 3 Back-up the current Tomcat installation
Stop Tomcat.
If you have installed Tomcat to run undersystemd
, enter:Code Block sudo systemctl stop tomcat
Move the current
/opt/tomcat
directory to create into a backup.If you have a
tomcat-back
directory from a previous upgrade, delete it:Code Block sudo
rm
-r
/opt/tomcat-back
Create the backup:
Code Block sudo mv /opt/tomcat/ /opt/tomcat-back
Step 4 Install the new version of Tomcat
To install the required new version of Tomcat:
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Step 5 Configure the new version of Tomcat
Move the PhixFlow webapp back infrom the backup into the new Tomcat
webapps
directory.Code Block sudo mv /opt/tomcat-back/webapps/phixflow /opt/tomcat/webapps/
Copy any other If you have custom folders back in, e.g. $tomcat\secure and $tomcat\metadataApply , move them back into the new Tomcat installation, for example
tomcat/secure
andtomcat/metadata
.- If there were any additional files in
tomcat/bin
, copy these back into the new installation. - If there were any additional files in
tomcat/lib
, copy these back into the new installation. Apply the standard configuration settings and hardening steps, as instructed in ; see Install Tomcat
Remember to make and additional configuration changes if your Tomcat is different from from the standard setup you captured above, including settings for.
- It is not necessary
Copy your specific configurations from the backup files into the Tomcat configuration files, for example: SSL termination, non-standard ports, etc. You may find it easier to copy the relevant sections from the backup files, but make sure you only copy the sections that needs updating
Tip
Copy only the sections that are specific to your installation.
Restart tomcatTip You do not need to re-create the service configuration for tomcat providing that:
You have not updated Java at the same time
You have installed tomcat at the same location as previously
Tomcat. For example, if you previously installed tomcat Tomcat to run under
systemd
, the service script will be unaffected by the tomcat upgrade.continue to work after the upgrade.
You may need to revise your service configuration if you have:
also updated Java
not installed Tomcat in the same location as previously.
Step 6 Restart and Test
Restart Tomcat
Code Block sudo systemctl start tomcat
Check Test that tomcat Tomcat is running ok & and the webapp is upPhixFlow webapp can run:
Code Block sudo systemctl status tomcat curl http://localhost:8080/phixflow/start.html
Check that you are now running the required version of Tomcat:
Code Block /opt/tomcat/bin/version.sh
Windows
Below, $tomcat refers to the Tomcat base directory.
Preparation
In PowerShell, check the version
On Windows
The following instructions assume that you already have Tomcat 9 installed in c:\app\tomcat9
, as recommended in PhixFlow’s installation instructions. If Tomcat is at a different version, and/or you have chosen to install it in a different location, remember to replace
in the following commands with your installation directory.c:\app\tomcat9
Step 1 Identify your current version of Tomcat
To run the following process you must have the following environment variables set:
- CATALINA_HOME
- JAVA_HOME
If you have not set these variables, you can set them in your current session. For example, in Powershell, enter:
Code Block |
---|
$env:JAVA_HOME="C:\Program Files\Java\jre1.8.0_282"
$env:CATALINA_HOME="C:\app\tomcat9" |
To check the version, in PowerShell enter:
Code Block |
---|
& "C:\app\tomcat9\bin\version.bat |
Most PhixFlow installations use a fairly standard setup in tomcat, but there are some possible variations. Commonly, these are:
You handle SSL termination in tomcat to provide a secure connection, i.e. you have installed a certificate
You use a non-standard port number
You have allowed large files to be exported from PhixFlow by increasing the limit allowed by maxPostSize
All of the above are already covered in the steps below, by re-applying changes to server.xml and web.xml. However, if in doubt, you could check by comparing" |
Step 2 Check your configuration
You can skip this step if you have notes or a checklist of your configuration.
If you cannot remember what configuration changes you have made to Tomcat, you can compare your configuration files to those in a standard installation. To do so, download your current version of tomcat, unpack it, but do not install it - just place it in $standardInstallCurrentVersionThen compare the following files
Download a new copy of your current version of Tomcat.
- Find your current version of tomcat on the Tomcat download page:
- for version 8: http://tomcat.apache.org/download-80.cgi
- for version 9: https://tomcat.apache.org/download-90.cgi
- for older versions of Tomcat look for your version under
Archives
→ <your version> →bin
. Download the link with the formatapache-tomcat-VERSION-windows-x64.zip
- Download your current version and unpack it to a temporary directory, for example
TempCurrent
. Do not install it. Use the
compare
command to find the differences between theTempCurrent\conf
files and those in your current installation'sconf
directory. For example, in PowerShell, enter:Code Block compare-object (get-content c:\app\tomcat9\conf\file.xml) (get-content TempCurrent\conf\file.xml)
In particular, you are looking for differences in the following files:
- server.xml
- context.xml
- web.xml
- tomcat-users.xml
- .
PhixFlow does not
- .
- recommend updates to this file
- but you may have enabled internal
using the command compare-object (get-content $tomcat\conf\file.xml) (get-content $standardInstallCurrentVersion\conf\file.xml) in PowerShell.
Upgrade
Stop Tomcat
Backup the current tomcat folder; e.g. copy the entire $tomcat- Tomcat users.
- Make a note of any differences between your current installation and the test installation.
You will need to reproduce these changes in the new installation in Step 7 below. There may be additional files in your current installation's
tomcat\bin
directory, for example to integrate with a monitoring agent. Use the compare command to compare thebin
directory with your current installation's tomcat\bin directory, for example:Code Block compare-object (get-childitem c:\app\tomcat9\bin) (get-childitem TempCurrent\bin)
- Make a note of any extra files in current installation's
bin
directory - these will need copying back in step 7 There may be additional files in your current installation's
lib
directory - usually these will be for supporting to connections to databases outside of the standard set. Use the compare command to compare these directories, for example:Code Block compare-object (get-childitem c:\app\tomcat9\lib) (get-childitem TempCurrent\lib)
Note To support connections to databases outside of the standard set, there is now a better way of setting up the additional library files: Database Driver
- Make a note of any extra files in your current installation's
lib
directory - these will need copying back in step 7 - Remove your temporary download.
Step 3 Back up the current Tomcat installation
Copy the entire
tomcat9
folder to a backup location.If your log files are large and you do not want to retain them, as a minimum,
you must back up the following
tomcat9\
sub-folders:
webapps
conf
lib
bin
$tomcat\metadata, if this exists
$tomcat\secure, if this exists
- and if they exist:
metadata
andsecure.
- and if they exist:
Step 4 Note your Java setup
- Open Tomcat Properties. If you need further details on how to do this, see: Managing Tomcat
- Go to the Java tab.
- Check and make a note of your changes to the Java setup, including those required by PhixFlow.
In particular, note:
- the path of the Java Virtual Machine
Java options
. Make a note of any options you have added in addition to the
Memory allocation
If tomcatPhixFlow recommendations. PhixFlow recommends:
Insert excerpt Install Tomcat on Windows Install Tomcat on Windows nopanel true - Memory allocation
- On the server, open Services → Apache Tomcat service properties:
If Tomcat is running under a service account,
make a note of the service account name
, and make sure that. Ensure you have the service account password
available. To see this, open services on the server and open the properties for the Apache Tomcat service:Uninstall Tomcat. To do this, open ‘Add or remove programs’.
Step 5 Uninstall the current version of Tomcat
Note |
---|
We do not recommend using Uninstall.exe in the |
- Open Add or remove programs.
- Locate Tomcat and click
- Uninstall.
- Windows asks if you want to remove all files:
- Recommended - Click Yes if you have taken a backup of the necessary folders in
- Step 3.
- Alternatively - Click No if you want Windows to keep the
conf
,logs
,null
andwebapps
directories, as well as any other directories you have added
- .
The following instructions reference several sections of the page https://phixflow.atlassian.net/wiki/spaces/HELPTRUNKR/pages/304087050/Install+Tomcat+on+Windows :
Section Download and install Tomcat: Download and install the latest version of Tomcat
Section Configure the service wrapper: re-apply the settings (Java options) as recommended on that page, and settings you captured above for the Java configuration (JVM path, memory settings, any Java options you applied in addition to the standard setup)
Section Run under service account: if you identified above that tomcat was being run under a service account re-apply this configuration
Copy the webapp back in from backup, e.g. $backup\webapps\phixflow to $tomcat\webapps\phixflow
Copy any other custom folders back in, e.g. $tomcat\secure and $tomcat\metadata
Apply standard configuration settings and harderning steps, as instructed in https://phixflow.atlassian.net/wiki/spaces/HELPTRUNKR/pages/97734713/Install%2BTomcat , ensuring that:
You apply any variation from the standard setup you captured above, including settings forStep 6 Install the new version of Tomcat
To install the required new version of Tomcat, follow the instructions on Install Tomcat on Windows. Remember to reapply the settings:
recommended for PhixFlow; see Configure the service wrapper
you noted in Step 4, such as:
JVM path
memory settings
service account; see Run under service account.
Step 7 Configure the new version of Tomcat
Copy the PhixFlow webapp from the backup into the new Tomcat
webapps
directory, for example frombackup\webapps\phixflow
totomcat9\webapps\phixflow
.
This step means PhixFlow configuration files, such asphixflow-datasource.xml
are updated with your configuration.- If the webapp has a datalink, this will need recreating
If you have custom folders, copy them back into the new Tomcat installation, for example
tomcat9\secure
andtomcat9\metadata
.- If there were any additional files in
tomcat9\bin
, copy these back into the new installation - If there were any additional files in
tomcat9\lib
, copy these back into the new installation Apply the standard configuration settings and hardening steps; see Install Tomcat.
Copy your specific configurations (as identified in Step 2) from the backup files into the Tomcat configuration files, for example: SSL termination, non-standard ports, etc.
You may find it easier to copy the relevant sections from the backup files, but make sure you only copy the sections that needs updating
Start Tomcat and check that PhixFlow is up and running
In PowerShell, check the version
$tomcatCopy only the sections that are specific to your installation.
If you are using MS SQL Server integrated authentication, remember to replace the Java option to set the classpath for
sqljdbc_auth.dll
. This should be included in the Java options you noted in Step 4, above. To be certain, you can check instructions for Tomcat configuration on MS SQL Server Integrated Authentication.
Step 8 Restart and Test
Restart the Tomcat service and check that it is running.
Start the PhixFlow webapp and check that it is running.
Check that you are now running the required version of Tomcat.
Assuming you have set the JAVA_HOME environment variable, in PowerShell, enter:Code Block & "C:\app\tomcat9\bin\version.bat"