Technical Blog Post
Abstract
Zend Server - PHP Server for IBM i 简析
Body
PHP 语言简介
PHP是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的功能强大的在服务器端执行的脚本语言,语言的风格有类似于C语言。PHP 由于它在处理数据库信息和创建动态网页方面的出色能力而被越来越多的广泛运用。这里服务器端是指HTML中直接内嵌的PHP语句是被Web服务器处理的,脚本语言意味着PHP不需要被编译。由于PHP语句处理的结果是标准的HTML,所以PHP生成的网页可以被快速的显示并且兼容大多数的Web
浏览器和系统平台。
PHP具有开源,免费,易使用,跨平台性强,效率高等优点。PHP代码可以轻松地访问数据库文件并生成动态更新后的网页,有点类似Java Server Pages(JSP)或通用网关接口(CGI)程序。但是PHP不需要被编译,是将程序直接嵌入到HTML文档中去执行,而JSP需要被先被编译成Java Servlet后执行;CGI则需要完全生成整个HTML文件,开发周期大,成本高,因此PHP在效率和开发成本方面有它的优势。PHP另一个有价值的地方在于网络上提供了大量有用的开源的PHP应用程序和代码实例,这意味着我们可以通过较少的投资、快速的部署和运行一个新的基于PHP Web应用。
什么是Zend Server for i
Zend Server被描述为运行和管理基于高可靠性,高性能和安全性的PHP应用的“一个完整的、企业应用级的网络服务器”。Zend Server for i 是Zend公司和IBM共同合作推出的一套为IBM i用户量身定制的稳定的,易于安装的PHP开发及运行工具。它包含了一个经过测试和认证的PHP版本以及一套用于搭建和优化环境的工具。Zend Server for i使得用户可以轻松的在IBM i平台上使用PHP和DB2实现基于动态网页的商业应用。
下图是Zend Server for i 在IBM i平台上的解决方案架构图
通过这个架构图我们可以看到IBM i HTTP服务器运行在ILE一侧而Zend Server for i是运行在PASE环境中的。他们之间的通信是通过IBM i HTTP服务器上面配置的PASE FastCGI模块来实现的。PASE FastCGI模块通过创建连接到PASE的套接字使得运行在PASE中的PHP程序能够像本地的CGI 作业一样被HTTP 服务器访问,通过这种方式,所有对PHP页面的HTTP请求都能够正确的从HTTP服务器一端转交到PASE中PHP引擎进行处理并将结果返回给HTTP 服务器。
如何安装Zend Server for i
1 IBM i 系统软件和Group PTF需求
(1)IBM i 5.4
检查下面License program是否安装:
5722SS1 30 Qshell
5722SS1 33 Portable App Solutions Environment
5722DG1 *BASE IBM HTTP Server for i
5733SC1 *BASE IBM Portable Utilities for i
5733SC1 1 OpenSSH, OpenSST, Zlib
检查下面 HTTP Group PTF 是否安装:
SF99114 - Level 30
(2)IBM i 6.1
检查下面License program是否安装:
5761SS1 30 Qshell
5761SS1 33 Portable App Solutions Environment
5761DG1 *BASE IBM HTTP Server for i
5733SC1 *BASE IBM Portable Utilities for i
5733SC1 1 OpenSSH, OpenSST, Zlib
检查下面 HTTP Group PTF 是否安装:
SF99115 - Level 23
(3)IBM i 7.1
检查下面License program是否安装:
5770SS1 30 Qshell
5770SS1 33 Portable App Solutions Environment
5770DG1 *BASE IBM HTTP Server for i
5733SC1 *BASE IBM Portable Utilities for i
5733SC1 1 OpenSSH, OpenSSL, zlib
检查下面 HTTP Group PTF 是否安装:
SF99368 - Level 11
2 下载安装文件并传送到目标IBM i 机器上
用户可以通过http://www.zend.com/en/products/server/downloads 选择IBM i类别去下载Zend Server for i的免费试用版。这里我们以选择Product Zend Server for IBM i(PHP 5.3), Version 5.6.0 New installation为例来给大家介绍。
注意:在你可以下载使用版之前,你必须注册一个Zend用户账户。
使用你的Zend账号登陆并下载压缩文件ZendServer-5.6.0-PHP5.3-IBMI-i.zip到你的个人PC上。解压这个压缩文件得到一个save file (比如 C:\zsvrsavf.savf)文件并把ftp到你的IBM i 机器上,具体步骤如下:
(1) 使用具有*SECOFR身份的用户登录到你要安装的IBM i 系统并在绿屏界面输入下面的命令在QGPL library下面创建名字为ZSVRSAVF的save file
CRTSAVF FILE(QGPL/ZSVRSAVF) TEXT('Zend Server product save file')
(2) 把解压后的save file文件通过二进制传送模式FTP到IBM i server上。具体步骤如下:
a) 打开一个windows命令行并将切换到包含save file的路径(比如 C:\)然后输入命令
ftp [IBM i server ip address or hostname] (比如: ftp 10.1.12.108)
b) 使用你的IBM i用户名和密码登录。
c) 登录成功后在ftp命令行输入 bin 命令来指定传输模式为二进制。
d) 在ftp命令行下面输入:put zsvrsavf.savf 来传送save file。
e) 当传送接受后,输入 quit 命令,退出ftp。
3安装Zend Server for i
在绿屏界面下,你可以通过silent模式安装,也可以通过交互模式安装,命令分别如下:
(1)Silent模式安装:
SBMJOB CMD(RSTLICPGM LICPGM(2ZSVRPI) DEV(*SAVF) SAVF(QGPL/ZSVRSAVF))
(2)交互式安装:
RSTLICPGM LICPGM(2ZSVRPI) DEV(*SAVF) SAVF(QGPL/ZSVRSAVF)
注意: 如果你之前同一台在IBM i系统安装过Zend server beta版本,建议你安装之前通过下面的命令先删除老程序:
DLTLICPGM LICPGM(2ZSVRPI)
这里我们以交互式安装为例,当你输入交互性安装的命令后会出现下面的安装界面:
按回车接受,然后进入许可协议页面,阅读后按回车建程序开始安装。安装中会出现询问是否安装可选的MySQL 服务器,这里我们选择按F3跳过MySQL的安装。
安装过程大概会持续10几分钟到半个小时之间,当出现下面的界面时,表示Zend Server for i已经安装成功,按回车键可以自动帮我们启动Zend Server,如果不想启动可以按F3键。这里我们选择按回车键让系统自动启动Zend Server。
可以在绿屏下面运行 GO LICPGM 选择选项10查看license program状态:
我们可以通过绿屏命令WRKACTJOB SBS(QHTTPSVR)来查看被系统自动启动的ZENDSVR的HTTP服务器,如下图所示:
通过这种安装方式Zend Server for i 程序本身被安装到了/usr/local/zendsvr目录中,默认的Zend Server HTTP服务器ZENDSVR被安装到了/www/zendsvr目录中。
验证Zend Server for i安装
安装完成后我们可以通过访问默认安装的PHP样例应用来验证Zend Server for i是否安装成功并能正确处理PHP请求。默认的样例应用安装在/www/zendsvr/htdocs/Samples/目录中,这里我们以Hello_World为例,Hello_World.php源程序如下:
<?php
echo "Hello, World!";
?>
这是一个非常简单的往浏览器端输出"Hello, World!"字符串的PHP应用例子。打开浏览器并在地址栏输入:http://lp20ut24.rchland.ibm.com:10088/Samples/Hello_World/Hello_World.p…
回车后如果可以正确看到"Hello, World!"字符串显示在你的浏览器页面中,表明你的Zend Server已经安装成功了。
上面只是一个非常简单的PHP程序,在默认安装的样例应用中还有如何通过PHP调用IBM i上面的RPG 程序,如何通过PHP访问IBM i DB2例子和相应的源码,我们可以方便通过学习这些例子来快速开发和部署属于我们自己的强大而丰富的PHP动态网站!
参考资料
(1) Zend Server for i官方网址:http://www.zend.com/en/products/server/zend-server-ibm-i
(2) Zend Server for i官方论坛: http://forums.zend.com/viewforum.php?f=67
(3) www.php.net:了解更多关于 PHP 的信息,并获得所有 ibm_db2 PHP 函数的详细信息
(4) 通过IBM i信息中心了解更多关于IBM HTTP server for i 的相关知识:http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic…
UID
ibm11145404