Entering the Zend Server license for IBM i via the User Interface, the web page will hang during the process.
No acknowledgment returned showing the license has been applied successfully.

Step-by-step guide

  1. Restart the Zend Server and check if the license update completed anyway.
    Use the Zend Server Green Screen menu options(update/view):
    GO ZENDPHP7/ZSMENU -> select option - > 80. Configurations -> 7. Update Zend Server License
    Or jump directly to the Configuration menu:
    GO ZENDPHP7/ZSCONFIG  




  2. Other manual license update if needed:
    Stop the Zend Server environment - use the green screen menu:
    For Zend Server version 8 ->  GO ZENDSVR6/ZSMENU
    For Zend Server version 9 ->  GO ZENDPHP7/ZSMENU

    License has to be set in two places:

    a) '/usr/local/zendsvr6/etc/conf.d/ZendGlobalDirectives.ini
    b) '/usr/local/zendsvr6/var/db/zsd.db'

    a)'/usr/local/zendphp7/php/active/etc/conf.d/ZendGlobalDirectives.ini
    b) '/usr/local/zendphp7/var/db/zsd.db'

    To register the license, we need to run the below SQLite SQL statements,
    to do so please download the following SQLite browser:
    http://sqlitebrowser.sourceforge.net/

    Once installed on your Windows, map a network drive to the IBM i file system so you can share the IFS  files

    Fix the license - execute this query on zsd.db using the SQLlite tool :
    update ZSD_DIRECTIVES set DISK_VALUE = 'Your_Order#' where NAME = 'zend.user_name';
    update ZSD_DIRECTIVES set DISK_VALUE='Your_License_key' where NAME='zend.serial_number';

    For Zend Server version 2019.0.x use the following SQLite commands:

    update ZSD_ZEND_COMMON_DIRECTIVES set DISK_VALUE = 'Your_Order#' where NAME = 'zend.user_name';
    update ZSD_ZEND_COMMON_DIRECTIVES set DISK_VALUE='Your_License_key' where NAME='zend.serial_number'



  3. You can try and use the following script as well, change the following:

    $serial_number = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    $user_name = 'user_name';


    <?php
    
    
    // set zend license variables to be updated
    $serial_number = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    $user_name = 'user_name';
    
    // connect to Zend Server database
    $sqliteDebug = true;
    try {
        $sqlite = new SQLite3('/usr/local/zendsvr6/var/db/zsd.db');
      //$sqlite = new SQLite3('/usr/local/zendphp7/var/db/zsd.db');
    } catch (Exception $exception) {
        echo '<p>There was an error connecting to the database!</p>';
    
        if ($sqliteDebug) {
            echo $exception->getMessage();
        }
    }
    
    // perform updates
    $query = "update ZSD_DIRECTIVES set DISK_VALUE = '" . $user_name . "' where NAME = 'zend.user_name'";
    // for Zend Server 2019.0.x PHP 7.x
    //$query = "update ZSD_ZEND_COMMON_DIRECTIVES set DISK_VALUE = '" . $user_name . "' where NAME = 'zend.user_name'"; 
    
    $sqliteResult = $sqlite->query($query);
    
    if (!$sqliteResult and $sqliteDebug) {
        echo "<p>There was an error updating zend.user_name: $query</p>";
    
        echo $sqlite->lastErrorMsg();
    } else {
        echo "<p>zend.user_name updated successfully: $user_name</p>";
    }
    
    $query = "update ZSD_DIRECTIVES set DISK_VALUE = '" . $serial_number . "' where NAME = 'zend.serial_number'";
    // for Zend Server 2019.0.x PHP 7.x 
    // $query = "update ZSD_ZEND_COMMON_DIRECTIVES set DISK_VALUE = '" . $serial_number . "' where NAME = 'zend.serial_number'";
    
    $sqliteResult = $sqlite->query($query);
    
    if (!$sqliteResult and $sqliteDebug) {
        echo "<p>There was an error updating zend.serial_number: $query</p>";
    
        echo $sqlite->lastErrorMsg();
    } else {
        echo "<p>zend.serial_number updated successfully: $serial_number</p>";
    }
    
    

    Registering the Zend Server
     
    Zend Server license