admin 管理员组文章数量: 1086019
2024年4月12日发(作者:nginx是什么文件)
… …一………… …… ‘…………一 … ………
实用第一 智慧密集
… … …., , … .
基于PB的多版本PHP集成开发环境系统设计与开发
张瑞祥
摘 要:通过相应服务组件提供命令与PowerBuilder程序编写,高度集成PHP多个主流版本、
Apache服务组件、MySQL服务组件和第三方常用工具,主要解决一键配置环境、多版本PHP程
序切换和可以利用移动存储设备移动运行的问题.并且让测试人员和开发人员任意选择PHP程序
版本进行开发工作,从而提高了工作效率。
关键词:PHP语言;集成环境;多版本
1 引言
随着信息技术的高速发展,PHP语言在不同领域开发的
B/S架构程序中得到广泛使用。越来越多的程序员使用PHP语
言进行程序开发。在使用自己搭建的PHP环境或集成的PHP
开发环境,总是有一个问题长期困扰着程序员。那就是PHP
apache.org下载Window版本的Apache发行包,也可以下载源
码版自行使用VC6.0进行编译,但是编译难度较大.建议还是
选择发行包。Apache是Apache HrrrP Server的简称.它是世
界使用排名第一的Web服务器软件,是Apache软件基金会的
一
个开放源码的网页服务器。它几乎可以在所有广泛使用的计
算机平台上运行。由于其跨平台和安全性被广泛使用.是最流
行的Web服务器端软件之一。
3.2_2 PHP语言组件
的版本之前存在差异,可能会导致程序在不同的PHP版本中
产生不必要的BUG。为了程序提高对PHP运行环境兼容性,
很多人都会在不同PC机器搭建环境或者在同一台机器配置多
个环境手动修改配置文件来解决这个问题。所以设计一款能够
一
本系统使用PHP5.2.17、PHP5.3.5、PHP5.4.0 3个版本的
PHP语言组件,可以通过www.php.net选择PHP版本进行下
键配置并且集成多个版本的PHP开发环境是非常必要的.
载。值得注意的是PHP5.3以后有两个版本.分别是VC6和
VC9,他们之间的区别VC6使用VisualStudio6进行编译.而
VC9使用VisualStudio2008进行编译。这里使用Apache的Web
这也是本系统设计的初衷。
2 需求分析
根据PHP官方资料和国内云计算开放平台资料的分析.现在
PHP主要使用开发的版本PHP5.2.17、PHP5.3.5和PHP5.4.0。通过
服务器建议使用VC6的版本。PHP是英文超文本预处理语言
Hypertext Preprocessor的缩写。PHP是一种HTML内嵌式的语
言,是一种在服务器端执行的嵌入HTML文档的脚本语言.语
言的风格有类似于C语言,被广泛地运用。它独特的语法混合
了C、Java、Perl以及PHP自创的语法。 PHP安装它可以比
网络使用比较多了几款WAMP集成开发环境分析.PHP集成开发
环境需要完成对PHP、Apache、MYSQL和相关实用工具的集成。
本系统设计集成了PHP5.2.17、PHP5.3.5、PHP5.4.0、
CGI或者Perl更快速地执行动态网页。用PHP做出的动态页
面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中
MYSQL5.1、Apache2.2.21及相关实用工具,并且实现一键切换
PHP版本、自动生成基本配置文件、服务状态管理和通过移动
存储设备做到移动开发的功能。
去执行,执行效率比完全生成HTML标记的CGI要高许多:
PHP还可以执行编译后代码,编译可以达到加密和优化代码运
行,使代码运行更快。PHP具有非常强大的功能,所有的CGI
的功能PHP都能实现,而且支持几乎所有流行的数据库以及
3开发工具及必要运行服务组件选择与下载
3.1 开发工具介绍
本系统采用PB(PowerBuilder的缩写)作为开发工具。PB
是一款可视化、多特性的开发工具,它的语言是PowerScript。
操作系统。最重要的是PHP可以用C、C++进行程序的扩展。
3_2_3数据库组件
本系统使用MySQL5.1作为数据库组件,可以通过www.
mysq1.COB下载,注意必须下载MySQL免安装版本的Windows
PowerScript是最新第四代语言——面向对象语言。
3.2运行服务组件选择与下载
3.2.1 Web服务器组件
程序。MySQL是一个中、小型关系型数据库管理系统,由瑞典
MySQL AB公司开发,目前属于Oracle公司。MySQL的SQL
语言是用于访问数据库的最常用标准化语言。MySQL软件采用
本系统使用Apache作为服务器组件,可以通过httpd.
(is
0 )i i ̄蠢磕20 1 与蛙
一 一-
CD啊PUTIR SECURITYAND MAINTENANCE,…………………… …… ……… …………………………… …
了GPL(GNU通用公共许可证),它分为免费版和商业版,由
于其体积小、速度快、总体拥有成本低,尤其是开放源码这一
特点.一般中小型网站的开发都选择MySQL作为网站数据库。
由于其免费版的性能卓越,搭配PHP和Apache可组成良好的
开发环境。
4 系统设计
4.1 PHP集成环境设计原理
根据Apache组件与MySQL组件提供命令接口和实际需
求,分析出系统主要原理如图1所示。
锢锢<
图1 PHP集成环境设计原理
系统原理主要通过管理程序控制集成环境的初始化,将组
件组成到服务肩动项中.再进行默认配置文件动态生成和使用
组件内置命令启动相应服务,完成默认的集成环境配置与启
动。切换PHP版本后。通过重新生成配置文件和使用组件内
置命令重启服务完成对配置文件重新载入,完成版本切换。并
通过组件内置命令移除服务,实现可移动携带的功能。
4.2关键技术与界面设计
4.2.1 Apache组件提供程序命令接口的说明
Apache组件中提供httpd带参数命令实现Apache的服务
注册、启动、删除、重启等操作,并且所有命令必须在
Apache组件的bin目录运行才能有效。编写集成开发环境所用
到的命令参数与解释如下:
(1)命令格式:httpd—k install—D“apache”。
含义解释:一k install表示注册服务,一n “apache”表示
自定义服务名为Apache.这里需要注意的是”apache”是自定
义的,可以自行修改,如果机器已经默认安装 T apache服务,
在使用自行开发的系统时,将会造成不必要的冲突,建议自行
设定一个服务名称,且将在后续操作中反复使用。
(2)命令格式:httpd—k start—n “apache”。
含义解释:一k start表示启动服务,一n “apache”表示
自定义服务名为Apache。如果之前自行修改过服务名称,这
里就是填写自己设定的名称,以后的操作也是相同。
(3)命令格式:httpd—k restart—n“apache”。
含义解释:一k restart表示重启服务,一n “apache”表示
自定义服务名为apache。
(4)命令格式:httpd—k stop—n “apache”。
含义解释:一k stop表示停止服务,一n “apache”表示自
定义服务名为apache。
(5)命令格式:httpd—k uninstall—n “apache”。
含义解释:一k uninstall表示删除服务,一n “apache”表
示自定义服务名为apache。在执行删除服务操作前.必须先将
Apache服务停止后才能移除。
通过以上5条常用命令就可以完成Apache的服务注册、
启动、删除、重启基本操作。
4.2.2 Mysql组件提供程序命令接口的说明
Apache组件中提供mysqld和net带参数命令实现Mysql的
服务注册、启动、删除、重启等操作,并且所有命令必须在
Mysql组件的bin目录运行才能有效。我们编写集成开发环境
所用到的命令参数与解释如下:
(1)命令格式:mysqld—install MYSQL—defaults-file=d:
\mysql5 ̄ny.ini。
含义解释:一install表示注册服务,MySQL表示自定义服
务名为MySQL,同样MySQL也是自定义的,可以自行修改,
如果机器已经默认安装了mysql服务,在使用自行开发的系统
时,将会照成不必要的冲突,建议自行设的一个。并且这个服
务名称,在后续操作中将反复用到。一defaults-file=表示默认
的配置文件,这里需要带人my.ini文件的绝对路径。
(2)命令格式:net start MySQL。
含义解释:start表示启动服务,MySQL表示自定义服务
名为MySQL。如果之前自行修改过服务名称,这里就是填写自
己设定的名称.以后的操作也是相同。
(3)命令格式:net restart MySQL。
含义解释:restart表示重启服务,MySQL表示自定义服务
名为MySQL。
(4)命令格式:net stop MySQL。
含义解释:stop表示停止服务.MySQL表示自定义服务名
为MySQL。
(5)命令格式:mysqld—remove MySQL。
含义解释:一remove表示删除服务,MySQL表示自定义
服务名为MySQL。在执行删除服务操作前,必须先将MySQL
服务停止后才能移除。
通过以上5条常用命令就可以完成MySQL的服务注册
启动、删除、重启基本操作。
4.2.3实现组件命令接口功能的技术
通过PB的Run命令来运行这些组件的接口命令.首先定
义一个全局变量curdir用来获取主程序所在目录,当然相关的
服务组件需要放人这个目录中,才能方便移动。这里通过
apache组件的注册示例来进行说明,其他命令接口基本与此格
… … … …… … …… … …… ”……一… …… …
实用第一 智慧密集
式相同。只需将命令进行修改。
核心代码如下:
error
_
code=Run(curdir+ '/bin/httpd-kinstall—n~“APACHE一…‘,
Minimized!):
If error code>0then
mle
—
ruessages.text=mle
—
messages.text+”HTTPD服务一”
APACHE一”注册成功!”+string(now())+ 一n—r ̄n”:
mle
—
messages.scroll(mle—messages.1inecount0);∥行滚动
else
mle messages.text=mle messages.text+ HTTPD服务~“
APACHE-“注册失败! +string(now())+ 一卜n—r—nII=
mle
—
messages.scroll(mle messages.1inecount0);//行滚动
Endif
从以上代码示例可以看出,通过PB的RUN命令调用
MS—DOS命令行运行组件的服务,并且值得注意的是
Minimized!表示该窗口将以最小化的方式运行。当组件命令运
行后,可以通过error_code命令返回运行状态,当状态为大于
0时表示运行成功。其他的值表示不成功。
4.2.4实现动态生成配置文件的技术
PHP集成环境动态生成配置文件,主要是Apache、PHP
和MySQL文件,在切换PHP版本的时候,不需要重新生成
MySQL和PHP的配置文件.所以直接在系统初始化的时候配
置文件。
核心代码如下:
玎始化PHP配置
SetProfileString (curdir+n/PHP/php一5.2/php
ni U,BPHP“,“
extension
_
diru,II一 +curdir+"/PHP/php一5.2/ext ̄””):
SetProfiIeSt rIng (curdir+“/PHFl/php一5.3/php
niII,IIPHP”,“
extension
—
di rlI, ~…‘+curdir+"/pHP/php一5.3/ext ̄ ):
SetProfiIeString (curdir+¨/PHP/php一5.4/php
n PHP”,
extension
_
dir","一 +curdir+'/PHP,php-5.4/ext- )
通过SetProfileString函数可以直接配置PHP.ini的文件.
系统初始化时候只需要配置php的动态链接库的路径.相关动
态链接库开启的配置,可以手动在PHP.ini中配置,也可以通
过SetProfileStifng函数配置。
核心代码如下:
『幸刀始化MYSQL配置
SetProfileString(curdir+“/mysqI5/mV.injII IImysqldIIiIIbasedir“,
CUrdir+。/mysql5 ):
SetProf.1eString(curdir+"/mysql5/my.in{11,IImysqtdBilldatadir”,
curdir+"/mysql5/data”):
通过SetProifleString函数可以直接配置my.ini的文件,由
于可移动的集成开发环境。使用的MySQL官方免安装的数据
库版本,所以需要SetProfileString函数配置数据库的MySQL程
序路径和数据路径,其他配置可以保留默认,也可以直接设
置。
Apache配置文件在PHP版本切换和实际运用中,将多次
使用,所以自定义一个函数cteate—apache—config 0方便程序,
函数中传人两个参数listenport和phpcr,listenport用于配置
Apache使用端口,phpcr用于配置当前选择PHP版本。在此只
介绍了需要添加或修改核心配置,在实际生成过程中,是需要
全部动态生成.直接保留Apache配置文件内容就行。还要注
意的是之前静态Apache配置文件很多地方有Apache路径,请
使用全局变量curdir来动态生成。
核心代码如下:
∥动态生成WEB服务器程序根目录和端口号
String apconfig,tmpconfig;
tmpconfig=”ServerRoot ̄ +curdir+“一”~r~n”:
If listenport=0 then
tmpconfig=tmpconfig+”Listen80 ̄r-n”:
else
tmpconfig=tmpconfig+”Listen”+st ring(Iistenport)+” ̄FNR“:
endif
//根据用户选择配置不同版本的PHP配置信息
If phpcr=52 then
生成PHP5.2的apache配置信息 /
tmpconfig=tmpconfig+“LoadModulephp5
一
module-…‘+curdir+”
/PHP/php一5.2/php5apache2_2.dll—n~r~n“;//载入php5.2的
//apache动态链接库
tmpconfig=tmpconfig+‘’PHPIniDir- +curdir+"/PHP/php-5.2-。 ‘
~
r ̄n ;//设定PHP.ini的目录
tmpconfig=tmpconfig+“LoadFile一””+curdir+“/PHP/php一5.2/
php5ts,dll~”一r~n“:
tmpconfig=tmpconfig+“LoadFile一““+curdir+”/PHP/php一5.2/
libmysq1.dll一“一r—n“://载入ffPHP5.2目录的MYSQL动态链接库
Elseif phpcr=53 then
/ 生成PHP5.3的apache配置信息 /
tmpconfig=tmpconfig+”LoadModulephp5
一
module ̄ +curdir+。‘
/PHP/php一5.3/php5apache2—2.dll-”N F ̄R”;//载人php5.3的
//apache动态链接库
tmpconfig=tmpconfig+”PHPIniDir- +curdir+“/PHP,Dhp-5.3一“
一
卜n“ ∥设定PHP.ini的目录
Elseif phpcr=54 then
tmpconfig=tmpconfig LoadModulephp5
一
module- +curdir+”
/PHP/php一5.4/php5apache2—2.d¨~ ~r~n“;f/载人php5.4的
fapache动态链接库
tmpconfig=tmpconfig+”PHPIniDir- +curdir+VPHPIPhp-5.4~“
~
r ̄n”;//设定PHP.ini的目录
/ 生成PHP5.4的apache配置信息 /
else
tmpconfig=tmpconfig+”LoadModulephp5,module-。。‘。+curdir+“
/PHP/php-5.2/php5apache2—2.dli ̄ ~r~n”:
tmpconfig=tmpconfig+“PHPIniDir~ +curdir+’/'PHP/php-5.2一“
一
r—n”:
tmpconfig=tmpconfig+“LoadFile一 +curdir+"/PHP,php一5.2/
php5ts.dll一 一r~n“:
tmpconfig=tmpconfig+ LoadFile一 +curdir+"/PHP/php一5.2/
COMPUTERSECURITYANDMAINTENANCE, …
libmysq1.dll-“一r—n“:
…
/ 生成PHP5 2的apache配置信息(默认1 /
End if
缱始=j髅机…一化=曲 ~!l
//设定WEB程序运行存储的根目录
tmpconfig=tmpconfig+ DocumentRoot ̄ +curdir+ ^^n^n^r一 一
rNn“:
tmpconfig=tmpconfig+”<Directory-…。+curdir+¨,www一”>一r~
tmpconfig=tmpconfig+ ODtiOnsI九de×esFollowSymLinks—r~
一
n__:
tmpconfig=tmpconfig+”AltowOverrideNone-r-n”:
tmpconfig=tmpconfig+“Orderallow,deny-r ̄n“:
tmpconfig=tmpconfig+”AIIowfromali-r-n“:
tmpconfig=tmpconfig+”</Directory>-r ̄n”:
//设定默认首页名称和文件类型
tmpconfig=tmpconfig+“<IfModuledir
_
module> ̄r ̄n :
tmpconfig=tmpconfig+“Directorylndexindex.phpindex.htmI—
r ̄n :
tmpconfig=tmpconfig+“</IfMOdule>~r~n :
∥增加PHP的文件类型的支持
tmpconfig=tmpconfig+ AddTypeappiication/x-httpd-php.
php-r-n“:
apconfig=tmpconfig;
Return apconfig;
通过以上代码,可以看出动态生成配置文件,就是将动态
拼接后的文本返回,并且写入apache的httpd.conf文件。
4.2.5实现多版本PHP切换功能的技术
PHP多版本切换主要通过修改Apache和切换PHP配置
文件路径来实现。通过声明一个全局变量来控制PHP版本的
选择.在动态生成配置文件之前进行判断PHP版本,获取选
择PHP版本的路径,生成相应的配置文件。生成完成配置
后,重启Apache服务完成,PHP版本的切换。实现示例如图
2所示
图2选择PHP版本的界面
声明全局变量:int pcr,在点选按钮的clicked()方法中
对pcr变量进行赋值.达到选择PHP版本的目的.如: “pcr
=
52;”。在生成配置通过 ̄CR的值进行判断,并且生成相应的
配置文件。
5 结语
系统自投入使用以来,运行稳定,功能符合设计要求,用
户操作较为简洁。使得PHP测试人员的效率提高.方便了开发
人员的工作。该系统仍然需要进一步的完善和用户体验的优化。
图3系统初始化界面
参考文献
【1]由珊珊,栾红娟,孙珍娟.基于PB的设备管理系统设计与
开发【J】.电脑编程技巧与维护,2012.08:26—28.
[21高洛峰.细说PHP.电子工业出版社,2009.
【3】张长富,李匀.PowerBuilder9.0参考手册.北京希望电子
出版社.电子科技大学出版社.2003.
(收稿日期:2012—10_25)
版权声明:本文标题:基于PB的多版本PHP集成开发环境系统设计与开发 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1712922624a612632.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论