Updating Zend Server on IBM i

The update installation is accomplished by the same repository installer script as the full installation, but there are some precautions you need to take before updating. For the most part, these are the same precautions you should take before updating one of the older versions with APYPTF. However, yum does not roll back as easily as RMVPTF, so it is even more important to insure there are no locks to cause issues, and a backup is recommended before starting.

  1. End Zend Server. From a 5250 command line, logged in with a *SECOFR class user profile:

    go zendphp74/zsmenu

    Use option “2. End Zend Server Subsystem”. This ends subsystem ZENDPHP74 and the ZENDPHP74 Apache instance. Use option “3. Work with Zend Server Jobs” to verify all jobs are ended. If any jobs appear, use F5 periodically to refresh the display until all the jobs are done. (Ignore jobs named “ZENDPHP7” or “ZENDSVR6”. These are for different versions.) Use F3 to exit the menu and release the lock on library ZENDPHP74.

  2. If there are any other Apache instances running this version of Zend Server, end them. If you are not sure whether any other Apache instances are using PHP, run the QP0FPTOS program mentioned in a later step. If there are any, that program will find them.

  3. Determine if any jobs have a lock on the ZENDPHP74 library by running this command:

    go zendphp74/zsmenu

    End any jobs that have a lock on the library.

  4. Clear the job queue used by Zend Server using this command:

    clrjobq zendphp74/zsvr_jobq

  5. Check to see if your PHP binaries are locked by any jobs. End any jobs that have a PHP binary locked. These commands produce spool file output. Run the command, then check your job spool files to see the output. These are the commands to use:

    CALL PGM(QP0FPTOS) PARM(*LSTOBJREF '/usr/local/zendphp74/php/active/bin/php-cgi' *FORMAT2)

    CALL PGM(QP0FPTOS) PARM(*LSTOBJREF '/usr/local/zendphp74/php/active/bin/php' *FORMAT2)

  6. A back up is not required, but it is recommended. It is true you are not very likely to need it, but as the saying goes, it is better to have it and not need it, than to need it and not have it. The good news is that the things you might need to recover are things that do not update frequently, like settings and code. So you can do this step ahead of time, or you may choose to rely on your regularly scheduled system backups. The simplest and most comprehensive backup would include the ZENDPHP74 library, and the /www/zendphp74 and /usr/local/zendphp74 directories with all their subdirectories. Or, you could do a more targeted backup to just capture your settings and source. It is a good practice to back up your software regularly anyway, so you may already be doing all the backing up you need.

With all of the locks cleared, you are now ready to run the update. This is the same command that is used to do a full install. Make sure you are logged in with a *SECOFR class user profile. Your user profile should have a home directory containing a .profile file, and that .profile file should set your path so the yum command can be found. If you are not sure your user profile is properly set up, please review Preparing for installation.

  • To begin the update, go into the PASE terminal. From the 5250 command line:

    call qp2term

  • In the PASE terminal, enter this command. You can copy from here (both lines at once) and paste into your PASE terminal:

    wget http://downloads.zend.com/zendserver/2021.0.0/ZendServer-2021.0.0-RepositoryInstaller.tar.gz -O - | tar --no-same-owner -xzf - -C /tmp && /tmp/ZendServer-RepositoryInstaller/install_zs.sh

While the update is running, do not enter additional commands or exit the screen. Allow the process to run until a dollar sign (or hashtag for QSECOFR) appears. This indicates the process has completed.

Important If you are updating from version 2020.0 or 2021.0, you need to stop and restart Zend Server after the update completes.

From a 5250 command line, logged in with a *SECOFR class user profile:

go zendphp74/zsmenu

Use option “2. End Zend Server Subsystem”. This ends subsystem ZENDPHP74 and the ZENDPHP74 Apache instance. Use option “3. Work with Zend Server Jobs” to verify all jobs are ended. If any jobs appear, use F5 periodically to refresh the display until all the jobs are done. Then use option “1. Start Zend Server Subsystem” to start the subsystem and Apache instance.