Issue

This knowledge base article addresses two issues we have found with the fastcgi.conf  file in Zend Server 2019.0.5

1) Beginning with Zend Server version 2019.0.0, multiple versions of PHP are available (PHP 7.1.x, PHP 7.2.x and PHP 7.3.x), and the active version can be changed whenever desired either through the User Interface (UI) or a menu option.  The location of the "active" php.ini file is incorrectly defined in the fastcgi.conf file, which prevents Zend Server from finding the correct location of the active version of php.ini when the version of PHP has been changed. 

This can cause various issues in applications when the correct "active" version cannot be located.  

This article will describe how to fix the fastcgi.conf file so that Zend Server is able to locate the "active" version of PHP when running the deployed applications. 

2) The other issue you may encounter is that the value of the ENV var INSTALLATION_UID is left with a value of TIMESTAMP rather than the correct numeric value from the zce.rc file.  This will cause the IPC objects and shared memory files used by Zend Server to be incorrectly created with TIMESTAMP as part of the file name rather than the intended numeric value. 

Environment

Zend Server 2019.0.0 - 2019.0.5, running on all supported versions of the IBM i OS.

Resolution

Please note that this procedure does require Zend Server to be restarted and also Requires user QSECOFR to run the Reset of Zend Server at the end.  Please ensure this is done at time when your website / applications can be down for a few minutes while Zend Server restarts.

Backup the fastcgi.conf file first

Please make a backup copy of the fastcgi.conf file first so that it can be reverted if necessary.  Also, please make sure to use an editor such as Notepad++ so that you can ensure that no additional / unseen characters are added to the file by mistake. 

Modify the fastcgi.conf file at the following location.   

/www/zendphp7/conf

There will be one very long line with the configuration values,  locate the variable "SetEnv="PHPRC/usr/local/zendphp7/etc/" and replace it with the following, which is the path to the "active" php.ini file.  Be careful not to add any additional spaces before or after the value that you copy in. 

SetEnv="PHPRC=/usr/local/zendphp7/php/active/etc/"

Check to see if the value of the INSTALLATION_UID is 100313092679 or if it is TIMESTAMP

If the value is 100313092679 or a similar numeric value, your installation does not have this issue and you can save the fastcgi.conf file and continue with the instructions

If the value of the INSTALLATION_UID is TIMESTAMP you will need to replace it with the correct value.

On that same very long line with the configuration values, locate the variable SetEnv="INSTALLATION_UID=TIMESTAMP" .  Be careful not to add any additional spaces before or after the value that you copy in. 

Replace just the word TIMESTAMP with the value 100313092679         Be careful not to add any additional spaces when replacing the value, and make sure the " included at the end of the variable

The variable should like the example below.

SetEnv="INSTALLATION_UID=100313092679"

Save the changes to the file. 

User QSECOFR is Required to run the Reset Zend Server job.  Users with *SECOFR or *ALLOBJ authorities will not work. 

A Reset of Zend Server is needed to pickup the changes and rebuild the shared memory and other IPC objects used by Zend Server.  Log into a 5250 session as QSECOFR. 

GO ZENDPHP7/ZSMAINT   and take option 41. Reset Zend Server environment

This will end Zend Server, rebuild the necessary objects and then restart Zend Server.