Technical Blog Post
Abstract
IBM i上http server实用技巧之一:访问IBM i多文件系统
Body
IBM HTTP Server for i和IBM i文件系统关系如下图
图1 HTTP Server通过Integrated File System Interface访问IBM i的常用文件系统
配置HTTP Server访问不同文件系统下的应用
IBM HTTP Server for i配置文件的缺省路径和文件名是/www/yourservername/conf/httpd.conf。
IBM HTTP Server for i提供2种配置文件修改方式:
通过IBM Web Administration for i页面访问
打开浏览器,访问http://hostname:2001/HTTPAdmin。
点击Manage/HTTP Servers/Edit Configuration File。
图2 IBM Web Administration for i访问界面
Wrklnk '/www/yourservername/conf/httpd.conf'。
用2==>edit function, 编辑conf file。
图3 GreenScreen访问界面
访问根文件系统
通过HTTP Server,用户可以以web方式访问IBM i根文件系统下的资源,包含DOS和windows文件系统的文件和目录。通过类似UNIX系统的层级结构来访问。
详细步骤
1. 在IBM i上创建资源目录html。crtdir '/html'
2. 将要访问的资源文件(e.g test.html)拷贝到新创建的资源目录下。
3. 在配置文件里增加对该目录下文档的访问许可,并为该目录增加别名访问。
Alias /html /html
<Directory /html>
Order Allow,Deny
Allow From all
</Directory>
4. 通过URL访问该Web资源:http://hostname:port/html/test.html
访问开发文件系统
通过HTTP Server,用户可以以web方式访问IBM i开发文件系统下的资源,包含基于UNIX的文件和目录。
详细步骤
1. 在IBM i的QOpenSys目录下创建资源目录html。
crtdir '/QopenSys/html'
2. 将要访问的资源文件(e.g test.html)拷贝到新创建的资源目录下。
3. 在配置文件里增加对该目录下文档的访问许可,并为该目录增加别名访问。
Alias /html /QOpenSys/html
<Directory /QOpenSys/html>
Order Allow,Deny
Allow From all
</Directory>
4. 通过URL访问该Web资源:http://hostname:port/html/test.html
访问库(QSYS.LIB)文件系统
通过HTTP Server,用户可以以web方式访问IBM i库结构中的对象,包含IBM i的库和其他类型的IBM i的对象,可以利用层级结构访问这些对象,并支持对源物理文件/成员和用户空间(User Space)等数据对象的操作。
详细步骤:
1. 在IBM i上创建lib HTTP。
crtlib http
2. 将要访问的CGI(e.g test.pgm)或MBR等文件放到该lib里。
3. 在配置文件里增加对该lib下程序的访问许可,并为该目录增加别名访问。
ScriptAlias /HTTP/ /qsys.lib/HTTP.lib/
<Directory /QSYS.LIB/HTTP.LIB>
order allow,deny
allow from all
Options +ExecCGI
</Directory>
4. 通过URL访问该Web资源:http://hostname:port/HTTP/test.pgm
访问文档库服务(QDLS)文件系统
通过HTTP Server,用户可以以web方式访问IBM i文档库服务文件系统下的资源(支持从S/36系统上继承到IBM i系统上来的文件夹结构),可直接访问文件夹和文档,支持以流文件存储的IBM i上的文件夹,文档库对象的数据。
详细步骤
1. 通过绿屏,使用命令“ADDDIRE”增加用户对QDLS文件系统的访问权限。
2. 在IBM i的QDLS目录下创建资源目录html。
crtdir '/QDLS/html'
3. 将要访问的资源文件(e.g test.html)拷贝到新创建的资源目录下。
4. 在配置文件里增加对该目录下文档的访问许可,并为该目录增加别名访问。
Alias /html /QDLS/HTML
<Directory /QDLS/HTML>
Order Allow,Deny
Allow From all
</Directory>
5. 通过URL访问:http://hostname:port/html/test.html
访问IBM i文件服务器(QFileSvr.400)文件系统
通过HTTP Server,用户可以以web方式访问IBM i文件服务器(QFileSvr.400)文件系统上的资源,支持对远程IBM i服务器上的文件系统下资源的访问。
详细步骤
1. 在IBM i HTTP1的QFileSvr.400目录下,创建目录,该目录为要访问的远程IBM i的host name HTTP2。
crtdir '/QfileSvr.400/HTTP2'
2. 在远程IBM i HTTP2上创建文件夹html,并将要访问的资源文件(e.g test.html)拷贝到新创建的资源目录下。
3. 在配置文件里增加配置ServerUserid username,和对该目录下文档的访问许可,并为该目录增加别名访问。
ServerUserid username //在2台IBM i上有相同的用户名和密码
Alias /html /QFileSvr.400/HTTP2/html
<Directory /QFileSvr.400/HTTP2 /html>
Order Allow,Deny
Allow From all
</Directory>
4. 通过URL访问:http://hostname:port/html/test.html
访问用户自定义文件系统
通过HTTP Server,用户可以以web方式访问存放于辅助存储池(ASP)上的IBM i用户自定义文件系统(UDFS)下的资源,包含用户自己定义和自己管理的文件系统。
详细步骤
1. 通过iNav在IASP设备上创建一个UDFS文件系统.
2. 在绿屏下通过命令把该UDFS文件系统Mount到IBM i操作系统。
MOUNT TYPE(*UDFS) MFS('/dev/iaspname/udfsname.udfs') TOVRDIR('/mnt/udfsname')
3. 在设备IASP上创建文件夹
"MD '/mnt/udfsname1/html'"
4. 将文件(test.html)拷贝到该资源目录下。
5. 在配置文件里增加对该目录下文档的访问许可,并为该目录增加别名访问。
Alias /html /mnt/udfsname/html
<Directory /mnt/udfsname/html>
Order Allow,Deny
Allow From all
</Directory>
7. 通过URL访问:http://hostname:port/html/test.html
访问网络(NFS)文件系统
通过HTTP Server,IBM i用户可以以web方式访问远程网络文件系统的数据和对象。
详细步骤
1. 通过绿屏,使用命令“ADDDIRE”增加用户对NFS文件系统的访问权限。
2. 互相通讯的2台IBM i系统(http01,http02)都需要安装NFS server。
3. 启动NFS server:STRNFSSVR。
4. http01上修改文件export file:/ETC/EXPORTS如下:
/html access=http02
#HOSTOPT
HostName=http01,
PathNameCodePage=367,
DataFileCodePage=850,
NoWaitForWrites
5. 在http01上运行如下命令通知http02可以通过NFS server访问共享信息
CHGNFSEXP DIR('/html')
6. 在http02上创建目录/html,然后在http02上创建到http01的映射。
MOUNT TYPE(*NFS) MFS('http01:/html') MNTOVRDIR('/html')
7. 在http02上可以通过wrklnk /html访问http01上的共享信息。
8. 在配置文件里增加对该目录下文档的访问许可,并为该目录增加别名访问。
Alias /html /html
<Directory /html>
Order Allow,Deny
Allow From all
</Directory>
9. 通过URL访问:http://hostname:port/html/test.html
访问Windows NT服务器(QNTC)文件系统
通过HTTP Server,IBM i用户可以以web方式访问远程运行的Windows NY/2000/2003的文件,让IBM i上的应用与Windows客户端使用相同的数据。
详细步骤
1. PC端
IBM i NetServer和window NT/2000/2003在同一个域里并已经运行。
创建一个和IBM i相同的账户和密码,将需要访问的页面(test.html)放到将共享的文件夹HTML里
2. IBM i端
通过cfgtcp option10增加windows system的名字和ip地址到host table。
在/QNTC下创建目录,该目录为要访问的windows syste的host name WinHTTP。crtdir '/QNTC/WinHTTP'
3. 在配置文件里增加对该目录下文档的访问许可,并为该目录增加别名访问。
ServerUserid username
Alias /QNTC /QNTC/WinHTTP/HTML //WinHTTP:WindowsNT name / HTML:Shared folder on winNT
<Directory /QNTC/WinHTTP /HTML
Order Allow,Deny
Allow From all
</Directory>
4. 通过URL访问:http://hostname:port/QNTC/test.html
总结
通过配置IBM HTTP server可以轻松实现对IBM i上不同文件系统下资源的WEB访问。
参考资源 (resources)
参考 IBM Red Book首页,查看 IBM 软件和开放技术的最新信息。
参考IBM HTTP Server for iSeries,了解IBM i上Http Server的相关信息
参考 IBM HTTP Server for iSeries文档,了解HTTP Server的配置信息
UID
ibm11145890