Moving installations
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
Moving PageSeeder
To move a PageSeeder server, do the following:
If the server has been cloned, skip to step 9, but if the implementation includes a proxy server like NGINX, remember to update the name of the PageSeeder server in the proxy configuration.
Install PageSeeder on the new server, but don’t start it. Ideally, use the same ports as the existing server and configure a proxy if required.
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 database password has changed, edit the config/database.properties
file and add a LoginPassword
property that has the new, unencrypted password. PageSeeder encrypts it upon startup and removes the property.
If the JDBC driver hasn’t been downloaded to the new server, copy the database driver .jar
files (e.g. mysql*.jar
) located in:
[pageseeder]/webapp/WEB-INF/drivers [pageseeder]/webapp/WEB-INF/lib
For Linux, ensure xinetd
and 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 or the JDBC driver, 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
[pageseeder]/webapp/WEB-INF/config/global.properties
Update the webSiteAddress and emailDomain in
[pageseeder]/webapp/WEB-INF/config/global.properties
If migrating v5.97 or earlier, these values are in template.properties
.
Start PageSeeder (on Linux use service pageseeder start
), then update the old domain name (DO NOT add a new host). To do this 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:
Clear the 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 11 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.