Old PHP and Other PASE Apps Break on IBM i 7.5
November 15, 2023 Alex Woodie
Customers running old versions of PHP and other PASE applications like Node.JS may run into compatibility issues when running on IBM i 7.5. The issue is due to an upgrade in OpenSSL support in the latest release of the IBM i operating system, according to Alan Seiden.
Seiden, the principle of Seiden Group, first sounded the alarm in July about the problems running older, non-RPM versions of PHP and Node.JS on IBM i 7.5, which was upgraded from OpenSSL version 1.0.2 to version 1.1. In October, he recently published a blog post restating the issue.
“While [the OpenSSL upgrade is] a positive step forward, this update can prevent the functioning of some older PASE applications, such as the original 5733-OPS distribution of Node.js, and older 32-bit Zend Server PHP (PHP 5.5 and earlier, but some PHP 5.6 releases, too), which have all been out of support for several years,” Seiden stated in his blog.
PHP 5.5 and 5.6 are very old releases. Version 5.6 was first released in 2013 and was supported until 2016, while PHP 5.6 was launched in 2014 and was supported until 2018. But some IBM i customers have not yet made the move away from the legacy code base. Getting stuck on old releases was identified as a problem more than two years ago, but some customers have yet to fix it.
Symptoms of incompatible OpenSSL versions include Apache jobs that keep ending and restarting, Seiden says. The Apache jobs will use a huge amount of CPU and show the function PGM-execerror, he writes. Users may also see error messages in the Apache error log, “cannot load program” errors, and errors in lib.curl.a, libcrypto.a , or libssl.a, Seiden says.
To prevent these errors, users of old PHP and Node.js releases are encouraged to upgrade to newer releases that are available through RPM before they make the move to IBM i 7.5. Seiden says he has a workaround that “may” work for users who are running into these problems, but it’s neither guaranteed nor supported.
IBM switched to using RPM and YUM to distribute open source applications back in 2018. IBM maintains a repository for a variety of open source software packages, ranging from Python to Kafka to Nginx. IBM i customers can use the RPM method to download PHP, but must use third-party repos for PHP.
There are three options for PHP on IBM i. Two of them are from Perforce, including Zend PHP, which is free, and Zend Server, which is an enterprise distribution. For more information on Zend PHP, click here. For more info on Zend Server, click here.
Seiden Group maintains the third distribution of PHP, called CommunityPlus+. CP+ fully supports the new OpenSSL libraries in IBM i 7.5 and not susceptible to the errors, Seiden says. CP+ works with PHP version 7.3 through 8.2, runs on IBM i 7.2 through 7.5, and includes add-on components, such as database drivers.
Seiden distributes CP+ free of charge, although he will accept your money in exchange for ethanol support. He also offers an “Install and Learn” package for $995 that helps IBM i users get themselves up and running with PHP, including database and Web server connections.
The PHP version 7.x line, which was first unveiled in 2018 and was supported until 2022, was a major upgrade from the PHP version 5.x line. Many of the PHP version 5.x features that would trigger errors in early version 7.x releases were simply not supported in PHP 8.0, which debuted in 2020 and is supported until the end of November, forcing customers to rewrite their code. The latest version of PHP, version 8.3, is slated to be released next week.
RELATED STORIES
PHP Decisions Loom as Original Distro Reaches End of Life
I personally want to attest to the quality of the Seiden PHP distro, always timely updated and never went back.
Extremely fast with just stock fastcgi and apache, very lean and powerful.
All stock YUM managed without additional dependencies.
And Seiden is both knowledgable in IBMi and PHP and striving for an open philosophy and to share with the community (read their blog…… very informative in PASE topics).