HTTP Server for i (Powered by Apache) is the IBM i integrated web server. Although this unique implementation of Apache is well documented by IBM, that documentation can be hard to find. Internet searches often return outdated or irrelevant links.
Here are two easy changes that have helped some of our clients reduce perceived vulnerabilities. These changes, typically made in the Apache web server’s httpd.conf files, may stop unnecessary exposure of web server information, as well as satisfying security scanners.
“The order entry app is hanging again!” Nobody wins when your system is slow or stuck.
Find out how the best IBM i teams keep their users happy and productive with snappy PHP applications. In this video, Alan shares tips to optimize PHP websites and APIs for improved speed and stability. He explains why newer PHP versions are inherently faster and offer smoother migrations. He also details how to use Apache’s mod_deflate, look for network issues and bots, manage session clean-up, prepare for business growth, improve PHP Db2 performance, profile your application, and much more.
(Co-written with Alan Seiden)
FastCGI speeds up web applications by pre-starting and managing jobs for popular languages such as PHP. FastCGI can be configured to handle any language that supports the FastCGI interface, as shown in this FastCGI configuration for node.js. When it comes to PHP, you can trust tools such as our CommunityPlus+ PHP siteadd to set good FastCGI defaults. You can also customize fastcgi.conf to accommodate higher traffic, multiple environments, and to solve problems. Read on as we explain how FastCGI works and how to configure it.
When we do performance assessments for web applications running on HTTP Server (Powered by Apache) for i, one of the first things we do is enable a powerful Apache extension called mod_deflate. Just as zipping up files on your PC saves space and accelerates file transfers, mod_deflate compresses output from your server before sending it over your network.
Does it really work? My tests show a speed improvement of 10 to 50 percent!
If you’re running web applications, database servers, FTP, SSH, or other network programs, the IBM i NETSTAT command can tell you what is connecting to your system, which ports are in use, which programs are listening for network connections, and more.
“Do we upgrade to a paid Zend Server license,
or do we migrate to RPM-based PHP?”
At a recent MAGiC User Group webinar, Alan Seiden and Richard Schoen teamed up to present a tutorial and demo on how to get started with Community “RPM” PHP, sharing several tips picked up during client migrations.
When your site gets busy, your web server may need a configuration change to handle the load. We often start with the Apache web server’s ThreadsPerChild directive.
ThreadsPerChild controls how many connections can exist at once. Defaulting to 40, its value can be set in your Apache instance configuration file (for example, /www/zendphp7/httpd.conf):
Developers coming from a non-IBM i background know how to run the apachectl command to start, restart, and end an Apache web server instance. Instead of apachectl, however, IBM i provides a web-based graphical interface and the commands STRTCPSVR and ENDTCPSVR (be sure to prompt those for parameters using F4).
To supply the “missing” apachectl command for IBM i, I have written a BASH shell script that simulates apachectl on IBM i.