You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Issue

Zend Server for IBM i version 2020 is our first version for IBM i to use an RPM package instead of a Licensed Program for distribution. It is also our first version to be compiled with the 64 bit compiler.  It can be installed on the same partition as other versions of Zend Server to allow side by side testing before using the new version for production.  To upgrade from earlier versions will require a migration.  This article provides some notes to help you get started with this task.

Environment

Zend Server for IBM i version 2020 installed parallel to Zend Server 6 or higher on any supported version of IBM i.

Resolution

Zend Server for IBM i supports parallel installations of Zend Server 2020 with earlier versions of Zend Server on the same machine or partition. They are different installations on the IBM i, which allows for testing of the new version when there is only one IBM i partition available. I

What is true for Zend Server 8 is generally true for 6 and 7 as well. What is true for Zend Server 9 is generally true for 2018 and 2019 as well.

For the purposes of this article, we have written Zend Server 8 when we mean Zend Server 6, 7, or 8.  It just seemed cleaner.  In some areas we just say Zend Server 2019 when we mean Zend Server 9, 2018, or 2019.

Version 8 uses ZENDSVR6, Version 2019 uses ZENDPHP7, Version 2020 uses ZENDPHP74


Download and Install Zend Server 2020

To begin, please download and install Zend Server 2020.  Here are the instructions for downloading and installing Zend Server 2020 for IBM i:

Install Zend Server 2020 for IBM i


Copy Applications and Other Content to Zend Server 2020

The simplest installations typically have PHP scripts and other content in the /htdocs directory for the Apache instance.  This content can simply be copied to the new /htdocs folder.

  1. Copy your content from '/www/zendsvr6/htdocs' or '/www/zendphp7/htdocs' to '/www/zendphp74/htdocs'.
  2. Verify the scripts in '/www/zendphp74/htdocs' and any subfolders have *RX permissions granted to user QTMHHTTP.

You should now be able to execute your /htdocs scripts in Zend Server 2020 by changing the port.  For example, if you had a script '/www/zendphp7/htdocs/hello.php', using Zend Server 2019 you could run it in your browser at this address:

http://<your i5 ip address>:10090/hello.php

You could copy the script into '/www/zendphp74/htdocs/hello.php', grant user QTMHHTTP *RX permissions to it, then run it using Zend Server 2020 at this address:

http://<your i5 ip address>:10100/hello.php

If you have any deployed Virtual Hosts, Libraries, and/or Applications in an earlier version of Zend Server, simply deploy them in Zend Server 2020 using the User Interface. 

If you have manually created Virtual Hosts in the Apache configuration for the ZENDSVR6 or ZENDPHP7 instance of Apache, you will need to also create them in the ZENDPHP74 instance.

Note: Any Virtual Hosts created for Zend Server 2020 need to have unique ports

If any of your Virtual Hosts are using ports other than the defaults, remember they cannot use the same port while both your previous version of Zend Server and Zend Server 2020 are active.  Temporarily assign different ports for use in Zend Server 2020 while testing.  You can change them later when you go into production with Zend Server 2020.

Change the Path for PHP-CLI Calls

If you have calls to php-cli in CL programs, you will need to change the path to use the new version:

Where for Zend Server 8 you would use this:

/usr/local/zendsvr6/bin/php-cli

And for Zend Server 2019 you would use this:

/usr/local/zendphp7/bin/php-cli

And for Zend Server 2020 you will use:

/usr/local/zendphp74/bin/php-cli

Change the Path for Full Path References

Some customers prefer to use full paths in include() and require() functions.  This can provide a performance boost as the IFS can be a little slow finding a relative path.  Scan your scripts for '/zendsvr6' or '/zendphp7' and replace with '/zendphp74'.  Be careful about automating this step, to avoid unintended consequences.  And of course, test everything.

Java Bridge is Like the Highlander, There Can Only Be One

The Java Bridge daemon uses the same port for all versions of Zend Server, and performs the same functions, so there can only be one version of the Java Bridge Daemon running at any given time.  Since it is accessed by the port, scripts running in any version can use it.

Multiple Apache Instances

Zend Server does not support any Apache instances other than the default (ZENDPHP74 for ZS 2020, ZENDPHP7 for ZS 9, 2018 or 2019 and ZENDSVR6 for ZS 8).  We do have customers who have implemented additional Apache instances by adding a FastCGI configuration to these other instances.  If you have any such instances, you can redirect them to version 2020 by changing any occurrences of '/zendsvr6' or '/zendphp7' to '/zendphp74' in the fastcgi.conf for that instance.  However, you might need to do other things, and it is easy to mess this file up, so please be careful.  This activity is not covered under your Zend Support subscription, so please be sure you know what you are doing, or have whoever set this up for you in the first place come back and make the needed changes.

Customers using Virtual Hosts or multiple Apache instances may find that migration presents an opportunity to use Deployment instead to configure and manage their Virtual Hosts and Applications.  Many of these multiple Apache instances configurations were done at a time when Zend Server did not have Deployment functions built in. 

Access the User Interface at Port 10091

For Zend Server 8, the User Interface is found in your browser at port 10081:

http://<your IBMi ip address>:10081

For Zend Server 9, 2018 or 2019, the User Interface is found in your browser at port 10091:

http://<your IBMi ip address>:10091

Review Changes for PHP 7

Each point release of PHP has migration notes related to the previous version.  So for example, migration notes for PHP 7.0 show changes that would need to be made to PHP 5.6 code.  So, if you are moving from PHP 5.5 to 7.3, you would need to review the migration notes for PHP 5.6, 7.0, 7.1, 7.2 and 7.3.  So, how far you are coming determines how far back you need to go.  Zend Server 2020 offers PHP 7.2, 7.3, and 7.4.  Here are the links:

Migrating from PHP 7.3.x to PHP 7.4.x

Migrating from PHP 7.2.x to PHP 7.3.x

Migrating from PHP 7.1.x to PHP 7.2.x

Migrating from PHP 7.0.x to PHP 7.1.x

Migrating from PHP 5.6.x to PHP 7.0.x

Migrating from PHP 5.5.x to PHP 5.6.x

Migrating from PHP 5.4.x to PHP 5.5.x

If you are coming from 5.2 or 5.3, you will likely notice a pattern in the links that will help you find the pages you need.

Test Everything

Before you go into production with Zend Server 2020, test everything.  Test until you are sure everything works.  Test until you know everything works.  Test until you know that you know that everything works.  If you have never built any kind of test plan to exercise your entire site, now would be an excellent time to do that.  This article is just a guide to the most common considerations for the migration.  We can't think of everything.  The only way to be sure you have taken care of everything is to verify that you have taken care of everything.  Test it all.

  • No labels