Issue

This article provides some tips to assist customers needing to migrate from Zend Core to Zend Server on the IBM i

Environment

Zend Core for IBM i, any version.  Zend Server for IBM i, version 6 or later.

Resolution

Zend Server can be installed on an IBM i partition that is currently running Zend Core/Platform, and they can both run at the same time. In the default configurations, Zend Core uses port 89 and 8000, while Zend Server uses port 10080 or 10090 for applications, so they do not conflict.

In the simplest case, you can copy your scripts from /www/zendcore/htdocs to /www/zendphp7/htdocs (or /www/zendsvr6/htdocs for versions prior to version 9(. Then, make sure the scripts in /www/zendphp7/htdocs (or /www/zendsvr6/htdocs) have *RX permissions granted to user QTMHHTTP. So, if for example you had a script /www/zendcore/htdocs/hello.php, using Zend Core you could run it in your browser at this address:

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

You could copy hello.php into /www/zendphp7/htdocs/hello.php, grant user QTMHHTTP *RX permissions to it, then run it at this address:

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

(For versions 6 - 8.5, you would copy it to /www/zendsvr6/htdocs and then run it at http://<your i5 ip address>:10080/hello.php)

Note that for CLI calls, you should now use the command php-cli instead of php. So, if in a program you are using this:

/usr/local/Zend/Core/bin/php

For Zend Server, you would use this:

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

(or /usr/local/zendsvr6/bin/php-cli for versions 6 - 8.5)

If you are using full paths in include() or require() functions, you will need to adjust your paths if you move your application. Also, if you have specified the path to Zend Framework, there is a new location in Zend Server: /usr/local/zendphp7/share/ZendFramework .

Note: As of January 2012, Zend no longer distributes the old PHP Toolkit, which supported the functions to connect to programs natively on the IBM i. This included support for the functions that were prefixed 'i5', such as i5_connect() and related functions. Instead, we now offer the XML Toolkit, which provides much of the same functionality. We also offer a 'Compatibility Wrapper' that will support many of the 'i5' functions. If you have many scripts that use these functions, you can consider recoding them to use the XML Toolkit, using the Compatibility Wrapper to run much of the code unchanged, or you can consider obtaining the Easycom product direct from Aura Communications, which will provide the same functionality as the old toolkit. To learn more about this topic, please visit the XML Toolkit FAQ, located on our forum here:

http://forums.zend.com/viewtopic.php?f=113&t=41648

You can also learn much more about the new PHP XML Toolkit in the online manual: 

http://files.zend.com/help/Zend-Server-IBMi/zend-server.htm#php_toolkit_xml_service_functions.htm