ZendCon 2015 starts October 19

This year’s ZendCon has a new location—Las Vegas—and more IBM i speakers than ever, including:

  • Tony Cairns (IBM)
  • Massimiliano Cavicchioli (Zend)
  • Jim Oberholtzer (Agile Technology Architects)
  • Mike Pavlak (Zend)
  • Stephanie Rabbani (BCD)
  • Chuk Shirley (Sabel Steel)
  • Shlomo Vanunu (Zend)
  • and myself, Alan Seiden (Alan Seiden Consulting)

Tutorial day, Oct. 19, is recommended at this premier PHP conference. I’ll present “Db2 and PHP in Depth,” a three-hour tutorial of techniques for using IBM i’s native database, which can help make PHP applications more secure, easier to write, and faster. I’ll also present new features of Db2 and PHP’s Db2 interface that were inspired largely by comments and requests of past ZendCon attendees. Special guest Tony Cairns from IBM is expected, too, for a lively discussion about practical PHP development on IBM i. Bring your questions.

Later in the week I’ll present “Create a welcoming development environment on IBM i,” based on my experience leading PHP projects for IBM i, and “Strategic Modernization with PHP,” which shows the possibilities on the IBM i platform and the strengths of various approaches. Expect to hear valuable advice from your colleagues, too.

I’m looking forward to attending talks, talking to sponsors, chatting with many of my blog and newsletter readers, meeting clients, and getting to know Rogue Wave, the company that recently acquired Zend.

Information about ZendCon: http://zendcon.com

iTalk with Tuohy interview

I recently joined speaker and consultant Paul Touhy for a spontaneous, personal ‘iTalk with Tuohy’ recorded chat, described thus: “Paul Tuohy talks to development guru Alan Seiden about developing in PHP, the PHP for IBM i Toolkit, performance for developers and getting your work-work balance right.”

The free recording is available here: http://www.ibmsystemsmag.com/ibmi/trends/iTALK-WITH-TUOHY/seiden-development-balance

Zendcon 2014 promo video for IBM i users

About Zendcon:

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.

Which version of Zend Server for IBM i do I have?

Here is the easiest way to determine which version of Zend Server is installed on a given IBM i system.

From a 5250 command line, follow these four steps:

1. GO LICPGM
2. Take option 10 (Display installed licensed programs)
3. Scroll down to the licensed program 2ZSVRPI 
     (on my system it's the last entry)
4. Read the product description,
     containing version numbers for Zend Server and PHP
     in the form "Zend Server for IBM i [version] ( PHP [version])"

On my IBM i, I see:
2ZSVRPI   *INSTALLED   Zend Server for IBM i 5.6.0 ( PHP 5.3 )
so Zend Server is at 5.6.0 and PHP is 5.3.

Thanks to Zend’s Sam Pinkhasov for this tip.

SSH on IBM i

Secure Shell (SSH), a network protocol used every day by software developers, provides a fast, secure means to transfer files and submit commands to remote servers.

Zend Studio 8.0‘s SSH support allows users to save their PHP scripts onto remote servers such as IBM i.

How to set up SSH on IBM i

SSH runs as a server program, the SSH daemon (sshd). Before sshd can run, it requires a set of public/private key pairs.

Instructions for creating the key pairs and starting the server are given below.  There are two versions of instructions, depending on the version of OS.

IBM i v6.1 and higher: one step creates public/private keys (if needed) and starts server

STRTCPSVR *SSHD

V5R3 and V5R4: two steps are required

1. First, create the public/private key pairs (only needs to be done once):

CALL QP2TERM
ssh-keygen -t rsa1 -f /QOpenSys/QIBM/UserData/SC1/OpenSSH/openssh-3.5p1/etc/ssh_host_key -N ""
ssh-keygen -t dsa -f /QOpenSys/QIBM/UserData/SC1/OpenSSH/openssh-3.5p1/etc/ssh_host_dsa_key -N ""
ssh-keygen -t rsa -f /QOpenSys/QIBM/UserData/SC1/OpenSSH/openssh-3.5p1/etc/ssh_host_rsa_key -N ""

2. Then start sshd (“&” means to run in background):

/usr/sbin/sshd &
Either way, the daemon should now be running. To check, type NETSTAT *CNN on an ordinary 5250 command line. Look for a local port called “ssh” or 22.
For more information about setting up SSH, including prerequisites, see this “Young i Professionals” SSH wiki article and this old but still useful SSH article from Zend’s Knowledge Base.

Q&A: Upgrading from Zend Core to Zend Server

Zend Core and Zend Platform will reach “end of life” on July 1, 2011. Some of my clients have asked me what this will mean to them. In this article I’ll answer some common questions.

Q. What does “end of life” mean?

A. According to the official announcement,  effective immediately, Zend Core and Zend Platform will no longer be sold except in special circumstances. Support will continue to be offered by Zend, for those customers with a support contract, until July 1, 2011.

Q. What software replaces Zend Core and Zend Platform?

A. Zend Server replaces both Zend Core and Zend Platform.

Q. If I currently use Zend Core/Platform and take no action, will my PHP scripts continue to run on and after July 1?

A. Yes, your PHP scripts will continue to function. The products will still work.

Q. Why should I upgrade to Zend Server?

A. You should upgrade to continue to get security patches, improvements, and, if you have a contract, support (whether at free or paid levels).  In addition, Zend Server comes with the performance-boosting Optimizer+, new versions of the ibm_db2 driver, and PHP 5.3, which offers better memory usage and other benefits.

Q. Do I have to pay?

A. As with Zend Platform, advanced functionality and phone support are chargeable. As with Zend Core, basic functionality comes at no charge to you. The advanced version is called Zend Server. The no-charge version is called Zend Server Community Edition (CE). For more information, see Mike Pavlak’s blog post or ask me for assistance.

Q. Why the two versions of Zend Server?

A. It’s really one version with two modes. If you install the license, you get the advanced functionality. (You can get a trial license that allows you to try the advanced features for 30 days.) If you do not install a license, or after your trial license expires, you’ll have the basic (CE) functionality.

Q. Where can I get a trial license for advanced functionality, such as code tracing and monitoring?

A. http://www.zend.com/en/products/server/license

Q. How do I download Zend Server?

A. For IBM i, go to http://www.zend.com/en/products/server/downloads
and click the “IBM i” tab. Choose an installer for “Zend Server for IBM i (PHP 5.3).” You’ll see one labeled “Windows installer” and one not labeled. The Windows installer might be easier for users less experienced with save files and FTP. The unlabeled one is a smaller download and is fine for anyone comfortable with save files and FTP.

Q. We’re using PHP 5.2.4. Can we continue to use a 5.2.x version of PHP?

A. Zend Server does offer PHP 5.2 versions, but I’d suggest using a 5.3 version if you can. The main thing to watch for is that some 5.2 functions are “deprecated” in 5.3, meaning they still work, but may trigger a warning message. Here is the full list of deprecated functions.

Q. What are the technical differences between Zend Core and Zend Server?

A. One major difference: Zend Server runs under a single native IBM i Apache web server rather than being split between two Apache servers. To see some of the configurations that differ, read my blog post, Differences between Zend Core and Zend Server on IBM i.

Q. Does user NOBODY still run the show (I have it hard-coded in a couple of programs)?

A. No. QTMHHTTP, the default IBM i Apache web server user,  is the new user running the show. You’ll have to replace any NOBODY references with QTMHHTTP references.

Q. Any prerequisites before I install Zend Server?

A. Yes. For the list of prerequisites, go to the Zend Server resources page and find the heading “Zend Server for IBM i.” Underneath, click on “Release Notes.”  Be sure to install the most current HTTP Group PTF level. If you do that, you’ll automatically be installing the FastCGI PTFs as well. Here are IBM’s instructions for checking your HTTP group level.

Q. Can I run Zend Server at the same time as Zend Core?

A. Yes. If you run them simultaneously, you should make a configuration change to PHP.INI regarding PHP sessions, to ensure that your Core and Server session files do not collide.  In /usr/local/zendsvr/etc/php.ini, add these lines:

; Keep Zend Server's session data separate from Zend Core's.
; Be sure to actually create the /tmp/ZS folder first.
session.save_path = "/tmp/ZS"

Q. The release notes say that I should remove previous versions of Zend Server and any older version of the FastCGI PTFs. Do I have to do that?

A. Only if you previously installed a beta version of Zend Server. Most likely, you didn’t install those FastCGI PTFs unless you installed Zend Server before.

Q. Is upgrading to Zend Server worth the trouble?

A. Yes. Besides the importance of being supported, Zend Server will grow with your PHP development efforts, while Core will be frozen at old levels. No need to rush or panic, but do create an upgrade plan. Try to do it before July 1.

If you have more questions or would like a demo of Zend Server’s advanced functionality, get in touch. I’m also offering my clients an affordable block of time to help them upgrade smoothly from Zend Core/ Zend Platform to Zend Server with a minimum of disruption. If you are interested in getting help with your upgrade, write to me on my contact page and specify “Upgrade help.”