Archive

Archive for the ‘System i’ Category

Maximize Zend Server PHP performance with Apache compression

August 13th, 2010 Alan Seiden 3 comments

Does your site run as quickly as it could? It’s worth your time to find out. Faster web sites sell more products, improve user satisfaction, and even rank higher in Google searches.

Note: This tip was written for IBM i but could be adapted for other platforms as well.

Benefits of Zend Server

If you have upgraded from Zend Core to Zend Server for IBM i, you have already received several performance improvements: bytecode acceleration (Zend Optimizer+), the elimination of Zend Core’s proxy web server, and configurable Data Caching. If you upgraded from Community Edition (CE) to full Zend Server, you also get monitoring, Page Caching, and Job Queue functionality.

Compression adds even more speed

IBM’s Apache web server provides an additional way to speed up your Zend Server for IBM i pages. You can compress PHP output, javascript, style sheets, and other text-based content. The compressed output will automatically be decompressed and interpreted properly by all modern web browsers. My tests show a speed improvement of 10-50% from this easy technique.

How to enable compression in 3 steps

1. Edit ZENDSVR’s Apache configuration file, located at /www/zendsvr/conf/httpd.conf. This is a simple text file, so you may choose from several editors: IBM’s HTTP Server Admin GUI at port 2001 (if *ADMIN is started), the WRKLNK/EDTF command, or your favorite text editor (I use EditPad Pro).

2. Add the following two directives to the httpd.conf’s main section:

# Load IBM i's module that performs compression
LoadModule deflate_module /QSYS.LIB/QHTTPSVR.LIB/QZSRCORE.SRVPGM

# Specify what to compress (example: php, json, css, javascript, static html)
AddOutputFilterByType DEFLATE application/x-httpd-php application/json text/css
application/x-javascript application/javascript text/html

3. Restart Zend Server using the handy Restart PHP button button or STRTCPSVR SERVER(*HTTP) RESTART(*HTTP) HTTPSVR(ZENDSVR)

Measure the improvement

I ran before-and-after tests using a sample script included with Zend Server for IBM i: http://your-server:10088/Samples/SQL_access/DB2_SQL_example.php.

Before compression: 31kb, loaded in 250ms (milliseconds). See the Firebug report below (Firebug is an optional add-on for Firefox and is not required.)

Zend Server output without compression

Without compression, this page was 31kb and loaded in 250ms

After compression: 4.4kb; loaded in 109ms. That’s only 14% of the size and 50% of the time! See the screen shot below.

after compression: only 4.4kb and loaded in 109ms

after compression: only 4.4kb and loaded in 109ms

I highly recommend that you give output compression a try. Your Zend Server for IBM i pages will fly!

For more information on browser output compression, see: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html

Zend Studio 7.2.1 faster, more reliable

July 28th, 2010 Alan Seiden No comments

I just upgraded my copy of Zend Studio for IBM i from 7.0.2 to 7.2.1. Big improvement!

My use case: I typically use Zend Studio’s “Remote Server” facility to connect to the IBM i over FTP. With 7.2.1, FTP-based files now open and save much faster than before. In addition, the FTP connection no longer randomly disconnects the way it used to.

I recommend upgrading to 7.2.1, especially for anyone using FTP. It provides a smooth, hassle-free user experience.

Get Zend Studio here: http://www.zend.com/en/products/studio/downloads. Scroll down to the edition you need.

Note: this product is still free to users of IBM i, a nice benefit of Zend’s relationship with IBM.

Categories: IBM i, PHP, System i, Zend Studio, iSeries Tags:

See me speak about web services and Zend Framework

May 25th, 2010 Alan Seiden No comments

Join me at at Long Island PHP on June 7, 2010, where I’ll present a case study showing how I integrated Windows-based data into an IBM i-based application using SOAP with Zend Framework.

The principles are the same no matter what type of servers you use.

Event details: http://www.listnet.org/eventDetails.cfm?eventID=1263

There will be plenty of time for questions and discussion.

Hope to see you there!

P.S. To see the slides from my past presentations, go to  http://www.alanseiden.com/presentations/.

Differences Between Zend Core and Zend Server on IBM i

April 21st, 2010 Alan Seiden 3 comments

Zend Server for IBM i improves upon Zend Core’s older implementation of PHP in numerous ways. To make the migration easier, I’ve created a table that shows some of the settings and default file locations that have changed between Zend Core and Zend Server.

Zend Core
Zend Server
Installation folder
/usr/local/zend/core
/usr/local/zendsvr
PHP.INI
/usr/local/zend/core/etc
/usr/local/zendsvr/etc
Web server root(s)
/www/zendcore,
/usr/local/zend/apache2
/www/zendsvr
Document root
/www/zendcore/htdocs
/www/zendsvr/htdocs
Zend Framework
/usr/local/Zend/ZendFramework
/usr/local/zendsvr/share/ZendFramework
PHP binaries folder *
* where php and php-cli reside
/usr/local/zend/core/bin
/usr/local/zendsvr/bin
PHP Log files
/usr/local/zend/core/logs
/usr/local/zendsvr/
var/log
Web user profile (assign authority to it)
NOBODY
QTMHHTTP
Default HTTP Port
:89
:10088
Admin Interface URL
http://yourIBMi:89/ZendCore/
http://yourIBMi:10088/ZendServer/

If the new HTTP port of 10088 seems hard to remember, you can change it to something that’s easier to work with, such as the standard HTTP port of 80. To do that, edit /www/zendsvr/conf/httpd.conf and change Listen *:10088 to Listen *:80 or whatever you want. (Of course, first ensure that no other service is running on that IP/Port combination.)

Categories: IBM i, PHP, System i, Web development, Zend Server Tags:

Zend Server for IBM i Is Here

April 21st, 2010 Alan Seiden No comments

Zend and IBM have announced an updated, streamlined version of their PHP package for IBM i, called Zend Server. I’ve been using the beta for a while but last week read an announcement showing it’s ready for general use. It combines the best of Zend Core and Zend Platform in one package.

To get Zend Server, go to the Zend Server for IBM i page and click the green “Free Download” button. This will give you the “Community Edition (CE)” version, the free version that handles all the basics for running PHP on IBM i. It even comes with a year of free online support.

If you want to  upgrade to the non-CE version (it doesn’t have its own name), which gives you more debugging and tracing tools, as well as Job Queue functionality and more support, you can buy a license. Write to me if you need help or want to buy a license for the non-CE version.

Categories: IBM i, PHP, System i, Web development, Zend Server Tags:

Zend Server beta for PHP on IBM i: I like it

February 3rd, 2010 Alan Seiden No comments

I’m recommending that people try Zend Server beta for IBM i if they’re using PHP on the IBM i. Even though it’s in beta, Zend Server brings improvements over its predecessors, Zend Core and Zend Platform. Improvements include:

  • Easy new user interface combining the best of Core and Platform
  • Better interface makes it easier for people to discover and use features such as code tracing and debugging
  • Elimination of mandatory proxy server (always a thorn in my side!)
  • Use of IBM’s supported, full-featured, flexible Apache server rather than the limited PASE server
  • Better performance

One caveat: the current beta version (as of February, 2010) is missing some functionality that will be available in the generally available (GA) release. Temporarily missing functionality includes:

  • no support for the mail() function (use Zend_Mail or Phpmailer instead in the meantime)
  • inclusion of an older version of the ibm_db2 driver. This version doesn’t have support for the “i5_libl” option. Ask Zend to send you the updated db2 driver if you need it.

I’m looking forward to trying the next beta version and eventually the GA release.

I believe Zend Server will shorten the learning curve for new users and simplify advanced configurations for us “veterans.”

Download it here: Zend Server beta for IBM i

Categories: IBM i, PHP, System i Tags:

PHP on IBM i (and me) at ZendCon 2009

September 29th, 2009 Alan Seiden No comments

This year’s ZendCon (Oct. 20-22, 2009, in San Jose, Calif.), the premier PHP conference, features several presentations about developing with PHP on the IBM i, including one by me!

Come hear me speak about “Zend Framework for Enterprise PHP on IBM i” on Tuesday, Oct. 20, 2009, at 4pm.

For details, go to http://www.zendcon.com.

Speaker: Zend/PHP Conference 2009

My first open-source project: Mantis/400

November 27th, 2007 Alan Seiden No comments

Mantis/400 adds DB2 support to Mantis, the popular PHP-based bug tracking application. I programmed the upgrade with Ira Chandler of Curbstone Corporation, personnel from IBM and Zend, and Mantis’s Victor Boctor.

Mantis/400 runs on IBM System i (formerly AS/400), using Zend Core for i5.

Even before we got involved, Mantis supported several databases, thanks to theADOdb Database Abstraction Library for PHP (and Python). ADOdb’s support of DB2 needed help, though, so we improved it, particularly for System i’s version of DB2.

I recommend the open-source process to anyone who enjoys learning a lot and meeting good people. Our team zestily shared knowledge and discoveries.

More information is available in Alex Woodie’s story in IT Jungle: Mantis Bug Tracker Ported to i5/OS.

Categories: IT, PHP, System i Tags:

New York Software Industry Association writes about my work with System i/PHP

February 26th, 2007 Alan Seiden 1 comment

My work to foster PHP on IBM System i was noted in the Feb. 21, 2007, edition of buzz@nysia, the New York Software Industry Association’s weekly news report. I am delighted that buzz@nysia columnist Donna Bogatin chose me as a featured “mover and shaker.”

Categories: Announcements, PHP, System i Tags:

PHP mail() on IBM System i

October 7th, 2006 Alan Seiden No comments

My new article about mail() is available at MC Press Online. The article covers:

  • Zend Core’s implementation of mail() for IBM System i
  • How mail() compares to packages such as PHPMailer
  • Function definition and example
  • How to configure SMTP in Zend Core
  • Overriding defaults with ini_set
  • Troubleshooting

Read it here.

Categories: IT, PHP, System i, Web development Tags: