Moving PageSeeder from one server to another, or cloning a virtual machine and changing the server name is a straightforward task. However, like many administration tasks, it isn’t risk-free.
To minimize the chance of problems, always have a complete backup of the running system prior to any changes Also, do not upgrade PageSeeder as part of the migration. Upgrade and check the server as a separate task, either before or after the migration. On Linux you can install an older version using a command like:
$ yum install pageseeder-5.9607-1
or to downgrade an existing PageSeeder to a specified version:
$ yum downgrade pageseeder-5.9607-1
Before you start
- Before upgrading, review the Release Notes for any NOTE sections in earlier versions. These sections call out specific database checks or required updates to properties, configurations or customizations.
If updating from 5.6 or earlier, use the same values as
- If the database password has not changed, use the existing
- If the database password has changed, edit the
database.propertiesfile and add a
LoginPasswordproperty that has the new, unencrypted password. PageSeeder encrypts it upon startup.
To move a PageSeeder server, do the following:
If the server has been cloned, skip to step 8, but if the implementation includes a proxy server like NGINX, remember to update the name of the PageSeeder server in the proxy configuration.
Stop the existing PageSeeder and perform file system and database backups.
Restore the PageSeeder database with create on the new server, ensuring you create the same
pageseeder database account password as on the existing server.
Copy the following folders from the existing PageSeeder to the new PageSeeder. If using Linux
scp, add the
-p option to preserve file modification dates.
[pageseeder]/documents [pageseeder]/webapp/WEB-INF/config [pageseeder]/webapp/WEB-INF/state
If migrating PageSeeder v5.96 or earlier, instead of
WEB-INF/state copy the following:
[pageseeder]/ps-publisher/WEB-INF/config [pageseeder]/ps-publisher/WEB-INF/template (but not template/default) [pageseeder]/webapp/WEB-INF/cache [pageseeder]/webapp/WEB-INF/index [pageseeder]/webapp/WEB-INF/template (but not template/default*) [pageseeder]/webapp/woconfig
If the JDBC driver hasn’t been downloaded to the new server, copy the database driver
.jar files (e.g.
mysql*.jar) located in:
For Linux, ensure
tomcat are properly configured by running the following command and accepting default options. Ideally ,use the same Java
-Xmx memory options. These are at the top of the
/opt/pageseeder/tomcat/bin/startup.sh file on the existing server.
$ service pageseeder config
If Linux file permissions could have changed when copying files, run the following command to ensure the new PageSeeder has access to all files:
$ chown -R pageseeder:pageseeder /opt/pageseeder
If the server domain name has changed:
Obtain a product key for the new domain (you can get a temporary product key if required) and update it in
Update the webSiteAddress and emailDomain in
If migrating v5.97 or earlier, these values are in
Start PageSeeder (on Linux use
service pageseeder start), then update the old domain name, go to System administration > System configuration > Internal hosts (or Admin > Hosts in version 5).
Start PageSeeder, if not already started (on Linux use
service pageseeder start).
When moving a production server and changing the server domain name, do the following:
xml-documents cache in the user interface, go to System administration > Server status > Caching. This will ensure the old domain does not appear in the
documentinfo/uri/@host in PSML.
Re-index everything, go to System administration > Server status > Indexing. This may degrade server performance while it is running but will prime the cache and improve performance once it is finished. It is not strictly necessary unless PageSeeder has been upgraded and the release notes recommend it.
Step 10 is optional for dedicated test servers where indexing large document collections might be time-consuming and not affect testing or if the server domain name is only temporary. If upgrading PageSeeder do this step after upgrading.