Free PHP still exists on IBM i

I’ve been hearing from people confused about Zend Server editions on IBM i. Yes,  Community Edition was removed with Zend Server 7/8, but Zend replaced that with the no-charge “Basic” edition. The Basic edition exists only on IBM i. It requires registration but at no cost.

While I often recommend the Professional or Enterprise editions of Zend Server for the value-added tools (Z-Ray being the newest and most exciting, but also Zend Job Queue, Zend Monitor, and more) and for Zend’s professional support, rest assured that free PHP still exists, with the Basic edition.

For more information, here is the current list of Zend Server editions for IBM i.

Posted in IBM i, iSeries, PHP, System i, Zend Server | Leave a comment

Zend Framework 2 performance optimization: it works

Zend Framework 2 (ZF2) provides optimization techniques that are often overlooked by published performance tests. One excellent source for such techniques is a presentation by Gary Hockin. I was thrilled when my client and friend King Harrison IV of K3S began testing the effect of these techniques on his ZF2 application running on IBM i.

King’s initial tests produced a 600ms reduction in load time, obtaining respectable performance for his database-heavy application. He plans to update his blog post with further speed improvements as he implements them.

Read King Harrison IV’s blog post about ZF2 performance improvements.

Posted in IBM i, iSeries, Performance, PHP, System i, Zend Framework | Tagged , , , , , , , | Leave a comment

Save your fingers when using PHP-CLI

In Batch PHP I showed how to call PHP from a command line. For example, with Zend Server 6 or 7 on IBM i, one would launch a PASE command line using the command CALL QP2TERM, or launch QShell using QSH, then type a command such as this:

/usr/local/zendsvr6/bin/php-cli myscript.php

For those of us who use PHP-CLI often, the above command can be a finger-buster. Let’s shorten the path by creating a symbolic link:

cd /usr/bin
ln -s /usr/local/zendsvr6/bin/php-cli phpc

I created the symbolic link in /usr/bin, a directory that is likely to be in any user’s path.

Now try the shortened command:

phpc myscript.php

To test the shortcut without a PHP script, use the -v switch, which requests version information (‘v’ for version) about your PHP installation.

phpc -v

The above command will return version information that starts out something like this:

PHP 5.3.6 (cli) (built: Apr  7 2011 09:37:14)                                
Copyright (c) 1997-2011 The PHP Group                                        
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies                
    with Zend Extension Manager v5.1, Copyright (c) 2003-2010, by Zend Techno
logies                                                                       
    - with Zend Data Cache v4.0, Copyright (c) 2004-2010, by Zend Technologie
s [loaded] [licensed] [disabled]                                             
    - with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technolog
ies [loaded] [licensed] [enabled]                                            
    - with Zend Job Queue v4.0, Copyright (c) 2004-2010, by Zend Technologies
 [loaded] [not licensed] [disabled]

By creating a symbolic link to the PHP-CLI binary, practitioners of PHP can speed their work while saving their fingers.

For more about symbolic links, see my article Link up with QShell.

Posted in IBM i, iSeries, PHP, RSI, System i, Usability, Zend Server | Tagged , , , , , | 1 Comment

Zendcon 2014 promo video for IBM i users

About Zendcon:

Posted in db2, Events, IBM i, iSeries, PHP, System i, Zend Framework, Zend Server, Zend's PHP toolkit for IBM i | Tagged , , , , , , , | Leave a comment

Find the Technology Refresh (TR) level of an IBM i

I recently needed to know if a client’s IBM i 7.1 system had Technology Refresh 4 (TR4). If it did, I could use the relatively new INSERT with remote SUBSELECT technique, which allows a single SQL statement to copy DB2 data from one partition to another. Such are the benefits of keeping current with Technology Refreshes.

After reading an article on TRs by Steve Will, I decided to document how to determine which TRs are installed on an IBM i system.

TRs, which were introduced with IBM i 7.1, are packaged as Program Temporary Fixes (PTFs). They can be found with the DSPPTF command.

First, determine the product number of the licensed internal code of  your system. For 7.1, the product number is 5770999.

Then use the DSPPTF command followed by this product number. For example:

DSPPTF 5770999

When run on my test system, this command produced a list of PTFs that included MF99007, MF99006, MF99005, MF99004, MF99003, MF99002, and MF99001.

Because Technology Refresh PTF numbers follow the format MF99nnn, where nnn is the TR number (bolded above), I knew that TR7, TR6, TR5, TR4, TR3, TR2, and TR1 were available. I was pleased to learn I could use TR4’s enhancements to DB2.

Posted in db2, IBM i, iSeries, System i | Tagged , , , | Leave a comment

ZendCon+Tutorial discount expires Aug. 31

ZendCon, the premier PHP conference, October 27-30, 2014, in Santa Clara, California, has a discount expiring August 15 31 (extended!). When you register, be sure to include the tutorial day (Oct. 27). If you already registered but forgot to add the tutorial day, you can contact the organizers via a link at the bottom of the registration page. Among other half-day tutorials, I’ll be presenting two focused on IBM i:

  • PHP Performance on IBM i
    • If you’re interested in performance of PHP, or IBM i generally, in order to scale your application up to meet increased user demand, or if you have specific performance needs right now, you’ll want to attend.
    • Additional insight to be provided by IBM’er Tony Cairns (see below)
    • Testimonial from last year: “Our process now runs 30-50% faster, thanks to one tip from Alan’s presentation.”
      —Mike Meszaros, Software Developer, Specialty Pipe & Tube
  • DB2 with PHP in Depth
    • DB2 on IBM i has received major enhancements over the past year, including a dozen new settings in the PHP ibm_db2 middleware. Hear  how they can help improve security, performance, and stability. Other topics will include, but not be limited to:
      • Basic topics (with added commentary to make it interesting for everyone) such as library lists, prepared queries for security, persistent connections
      • DB2 in frameworks
        • Zend Framework 2
          • Including pagination (page-at-a-time logic)
        • Status of PDO and how it can be used in Laravel and other frameworks
      • The real scoop about modernization and the DDS vs. DDL (SQL) debate
      • Connecting to IBM i’s DB2 from Windows and Linux and other IBM i partitions
      • How to link MySQL-based applications (WordPress, etc.) to DB2 with the DB2 Storage Engine, with special tips
      • Using DB2’s HTTP features to make PHP-based web services even more accessible, including to allow RPG to call PHP and get results back
      • How to optimize queries
      • Strategies to safely open your application to the public
      • Topics and questions that YOU request (contact me in advance if you wish)

My co-presenter for tutorials will be IBM’s Tony Cairns, who helped bring PHP to the IBM i in the first place. He also created XMLSERVICE (toolkit back-end) and is a maintainer of ibm_db2 on the IBM i. One reason Tony comes to ZendCon is to hear from attendees such as yourselves. Normally he stays locked up in his lab. Take advantage of this opportunity to meet him. Watch Tony and me argue and debate in front of the class!

I’m also presenting a session during the regular conference about the PHP Toolkit for IBM i. I’ve updated my presentation with new features of the toolkit and best practices for calling RPG and COBOL.

ZendCon‘s topics are generally advanced ones to enable professional, enterprise-ready development practices. There’s also an IBM i track and plenty of networking time so that IBM i users of PHP can learn from speakers and each other, making the conference appropriate for intermediate users of PHP on IBM i as well.

Hope to see you there, October 27-30, 2014! Remember to register for tutorial day when you register for the conference. Get in touch with questions you’d like answered during my presentations.

Posted in db2, Events, IBM i, iSeries, MySQL, PHP, System i, Zend Framework, Zend Server, Zend's PHP toolkit for IBM i | Tagged , , , , , , | 1 Comment

See you at COMMON, May 4-7, 2014

Hope you enjoy these four videos (plus an outtake) I made with fellow speakers Dawn May and Charles Guarino to promote this year’s COMMON conference to be held in Orlando, Florida, from May 4-7, 2014, with optional pre-conference workshops May 3. I’ll be speaking about PHP and performance on IBM i. http://www.common.org/index.php/annualmeeting.html

Posted in db2, Events, IBM i, iSeries, PHP, System i, Zend's PHP toolkit for IBM i | Leave a comment

IBM i safe from OpenSSL Heartbleed bug

Clients have asked me whether their IBM i servers may be vulnerable to hackers due to the widely publicized OpenSSL Heartbleed bug.

The answer is no. IBM i is safe from this bug, which is present only in specific OpenSSL versions: 1.0.1 through 1.0.1f (inclusive). IBM i’s latest version of OpenSSL, shipped with the “Portable Utilities for i” licensed program product 5733SC1, is 0.9.8, which does not contain the bug.

To make doubly certain, check what version of OpenSSL is installed on your IBM i. Run these two commands, which, respectively, start a PASE interactive terminal session and check the openssl version:
call qp2term
openssl version

For me, the above commands returned “OpenSSL 0.9.8m 25 Feb 2010,” confirming that I’m not affected.

Press F3 afterward to leave the PASE environment.

Thanks to Jim Oberholtzer of Agile Technology Architects for his contribution to this answer.

UPDATE from IBM: System SSL and IBMJSSE2 are also safe from the vulnerability on IBM i.

Posted in IBM i, iSeries, System i | Tagged , , , | 4 Comments

Performance Tweet chat Monday, online workshop Thursday

Join me for two events this week sponsored by COMMON, a Users Group:

Details on Tweet chat: http://www.common.org/index.php/component/content/article/16-education/234-twitter-chat-php-performance-on-ibm-i

Details on online workshop: http://www.common.org/index.php/webinars.html

Posted in Apache, db2, Events, IBM i, iSeries, Performance, PHP, System i, Web development, Zend Server, Zend's PHP toolkit for IBM i | Leave a comment

PHP Performance on IBM i: Tuesday, Dec. 10 (limited-time discount)

Update: a recording of this class is available at http://iprodeveloper.com/let-your-php-apps-fly-ibm-i-high-performance-php-demand

————-

This Tuesday, learn how to Let Your PHP applications fly on IBM i. Busy? You can attend while getting your work done, with three one-hour class segments separated by breaks.

“Our process now runs 30-50% faster, thanks to one tip from Alan’s presentation.”
—Mike Meszaros, Software Developer, Specialty Pipe & Tube

You’ll learn to quickly improve your application’s performance, including:

  • Give your app that “snap” by optimizing its front end as well as PHP
  • Configure Zend Server for performance
  • Diagnose bottlenecks
  • Leverage unique IBM i performance tools
  • Optimize DB2 and the IBM i toolkit

I’ll be there to answer your questions. What’s more, the presentation will be archived for 60 days so you can review the material afterward.

“Alan is the performance guru of PHP on IBM i. When we encountered unexpectedly slow queries and program calls, Alan showed us a configuration change that helped our application run 3x faster, creating happy users. Thanks, Alan!”
—Adam Chuk Shirley, PHP Developer, Sabel Steel Service

What: PHP on IBM i performance eLearning event
When: Tuesday, December 10, 2013: three one-hour segments with two one-hour breaks, starting 11AM and ending 4PM (ET).
Where: Online
Cost: $150 (but discounted to $99 through Friday, Dec. 6)

Details and registration: http://iprodeveloper.com/let-your-php-apps-fly-ibm-i-high-performance-php

Posted in Announcements, Apache, db2, Events, IBM i, iSeries, JavaScript, Open Source, Performance, PHP, System i, Web development, Zend Server, Zend's PHP toolkit for IBM i | Leave a comment