Now that speedy PHP 7 is available for IBM i, we’re helping our clients upgrade to this long-awaited release via Zend Server 9. I thought I’d share some of our favorite resources for performing this upgrade safely and efficiently.
First, we recommend Rod Flohr’s article Migrate to Zend Server 9 from Previous Versions, which contains both basic instructions and special tips.
The process is more a migration than an upgrade, because PHP 7 is installed in a different location than old releases. Applications can be tested with old and new PHP in parallel. Thus, even shops having only one IBM i partition can test PHP 7 thoroughly before going live.
The new locations are the ZENDPHP 7 library and /www/zendsvr7 IFS directory. The old locations were ZENDSVR6 and /www/zendsvr6.
Our clients sometimes ask if very much functionality has changed or been removed in PHP 7. We haven’t seen any core or critical functionality removed, but some older and less common functionality that was deprecated (marked for future removal) in previous releases has been removed in PHP 7.
To see what functionality has been removed or changed, see these resources:
One example of a backwards-incompatible change was the removal of deprecated bundled extension ext/mysql. It can still be added back, if needed, as an ordinary PECL extension, but we recommend using the superior ext/mysqli (“mysql improved”) or PDO, which support prepared statements (essential for security) and have been available since PHP 5.
Db2 users should be pleased that IBM has reworked the ibm_db2 extension for PHP 7 on IBM i so that functions such as db2_connect(), db2_prepare(), db2_execute(), and the rest, should work as well as they did in PHP 5. Applications should be tested, of course, but there are no known problems with ibm_db2 in PHP 7 at this time.
We expect a fairly smooth migration for most shops, but let us know if you’d like us to manage the migration for you (you may be capable, but busy) or to help make it even smoother.