baserunner Web站点:baserunner.com
技术服务e-mail :support@baserunner.com
FTP服务:ftp.baserunner.com
邮件列表:baserunner-request@baserunner.com
baserunner是一个CGI执行程序,它必须在Web服务器上运行,如果你在DOS或Linux命令行中运行它, 不会有任何结果。
在本地WEB服务器上来评价或开发baserunner应用是一件相当简单的事情。在Windows 95/98/NT下有很多可以使用的EB服务器软件,但有一部分对于简单的开发目的来说不是显示太宠大就是太贵了,如果你还没有WEB服务器软件,建议你使用Xitami服务器,MS PWS也相当不错的。 在Linux系统下,一般来说你装有Apache服务器软件。baserunner在两种服务器上具有良好的可移植性,因此,如果你的baserunner应用需要使用Linux的主机系统,你可以在基于Windows的桌面系统上进行开发,很明显的是,在转移平台时要注意对路径的修改。
本地服务器的地址通常是http://127.0.0.1,一些系统也使用localhost或系统计算机的名字来访问本地WEB服务器。
运行baserunner软件,只需要将baserunner拷贝到WEB服务器的CGI上当之中(通常是cgi-bin,有些系统是scripts)。我给出的例子程序假设执行程序的文件名是baserun.exe,但这并不是说执行文件名称必须是baserun.exe(甚至在Linux系统下它还可能没有EXE后缀呢),这只是我在例子程序中使用的文件名而已。需要注意的是:一些Linux服务器需要以.cgi作为文件名的后辍,在这种服务器上你需要将执行文件名改为baserun.cgi,然后修改我给出的例子程序,将baserun.exe改为baserun.cgi。在Linux系统中,你还需要将将baserun.exe设置为可以执行的才行(即需要设置X属性位)。
我给出的例子程序中包含几个文件,如laser.cfg, laser_*.htm, laser.dbf, and laser.ftp/dbt。
执行例子程序或任何基于baserun程序的第一步是建立一个baserun.cfg文件。这个文件中包含了baserun程序所需要的各种文件的路径。为应用程序建立一个或为不同的目的建立几个目录 ,并为这些目录设置相应的权限,以使baserunner可以读(如会话目录与数据库文件目录)或写这些目录。
baserun.cfg文件通常与baserun.exe文件放在同一个目录,有一些系统需要将配置文件放在WEB根目录下才能运行CGI程序。baserunner必须能够在没有路径的情况下知道在何处读或写这些文件。
例如,在web服务器上建立了这些目录: ~/baserun/data, ~/baserun/session, ~/baserun/template, ~/baserun/config. 你需要将例子文件拷贝到相应的目录之中,(*.dbf/fpt 拷贝到 data, *.htm 拷贝到 template, *.cfg 拷贝到 config). 这样,你的baserun.cfg文件可能会像下面的样子:
_templatepath=/usr/local/httpd/baserun/template/
_datapath=/usr/local/httpd/baserun/data/
_sessionpath=/usr/local/httpd/baserun/session/
_configpath=/usr/local/httpd/baserun/config/
或者是:
_templatepath=c:\xitami\baserun\template\
_datapath=c:\xitami\baserun\data\
_sessionpath=c:\xitami\baserun\session\
_configpath=c:\xitami\baserun\config\
当然,你的WEB跟目录可能会不同,一旦你将文件拷贝到相应的上当,你就可以启动baserun应用程序,如下所示:
http://127.0.0.1/cgi-bin/baserun.exe?_cfg=laser.cfg
如果你的CGI上当是scripts而不是cgi-bin(如MS PWS就是这样的),需要在cfg文件中将将_cgi_dir改为scripts,并使用下面的方法来启动baerun程序:
http://127.0.0.1/scripts/baserun.exe?_cfg=laser.cfg
你不能只是在游览器里打开文件并行baserun应用程序,baserunner必须启动一个应用程序的配置文件并且还需要设置一个用户会话,如果你只是打开了文件, baserunner不知道你需要的是哪一个配置文件,并且没有会话启示,这样的话你将会看到一个会话已经过期的消息。
你也可以选择不使用baserun.cfg文件,但在你做出这样的选择之前,你应该仔细研究一个配置部分有关安全方面的知识。如果这果做的话,你需要在应用程序的配置文件中需要给出应用程序的完整的路径名,例如,你不能写:
_record=laser_r.htm
而应该是:
_record=c:\xitami\baseun\template\laser_r.htm.
最后,在启动应用程序时你也需要给出完整的路径名:
http://127.0.0.1/cgi-bin/baserun.exe?_cfg=c:\xitami\baserun\config\laser.cfg
并且_dbf变量也需要是完整的路径名,会话数据库应创建在cgi-bin目录之中。
第三种选择是将全部的文件都放在 cgi-bin目录之中,这是使用baserun.cfg文件的最简单的选择。
为什么会需要这些选择呢,原因很简单:baserunner需要能找到并读在程序中使用的各种文件。在大多数服务器的配置之中,如果你只给出文件名, baserunner就在CGI目录目录中进行查找,但有部分服务器配置为CGI程序在WEB根目录中运行,这时,baserunner就会在WEB跟目录中查找文件而不是CGI目录,因此,对于一个文件来说,你应给出相对路径(带./的路径),而不对带完整路径的的绝对路径,记住这一点是很重要的。因此如果你使用baserun.cfg文件,这个文件通常与执行文件一起放在CGI目录之中;如果你的服务器配置为CGI程序在WEB根目录下运行,这个文件就应该放在WEB根目录之中。
文件的路径是本地路径,而不是带有网络地址的路径。 baserunner是作为一个本地程序来运行的,它(以及任何CGI程序)不知道网络以及在URL中使用的路径。这样做使得你在更改服务器的设置时显得很简单。当然,你需要知道本地服务器的路径,最好向系统管理人员查询或通过PATH_TRASNLATED变量来获得。
一旦你组装完你的程序并在本地服务器上完成了测试工作,你就需要通过修改各种路径将程序移植到网络服务器上去。由于baserunner软件在Windows与Linux系统之间的良好的可移植性, 应用程序上传到网络服务器上时需要做的工作就是修改路径。使用baserun.cfg是一种最好的选择:你可能建立两个cfg文件,一个用于本地服务器,一个用于网络服务器。
baserunner需要拥有使用应用程序的文件的权限。 baserunner需要拥有包含应用程序文件在内的很多目录的读权限,而且对于用户会话与应用数据库所在的目录拥有写权限。有的服务器的权限管理相对简单(如MS PWS),而有一些服务器的权限管理就很复杂(如Linux或Unix系统下的WEB服务器),这需要你与系统管理人员联系。
下面的信息包含baserunner启动过程可能出现有大部分信息,这些信息还包含了如何解决特定的错误,以使baserunner能正常运行:
本信息表明了baserunner不能正常建立会话数据库。出现这种错误的原因多数时baserunner没有对会话数据库目录的写权限。你只好与WEB系统管理人员联系,对目录的权限重新进行设置。
本信息表明baserunner启动时没有使用"_cfg"变量。每一个baserunner应用都需要一个应用配置文件,并且必须在首次启动baserunner时将_cfg传递给baserunner应用。
本信息表明baserunner不能打开指定的配置文件。可能是文件不存在或者是路径不正确,也可能是对配置文件没有读权限。
本信息表明baserunner不能在会话数据库中创建新的会话记录。可能是由于没有正确的读写权限或者是由于会话数据库已经被破坏而引起的。通常的解决方法是将会话数据库删除,让baserunner重新创建一个。如果你将从一种数据库转换到另一种数据库或者对数据库进行升级,在使用新的数据库之前,你必须删除原有的会话数据库。
表明baserunner不能打开指定的数据库,通常由于数据库名称或目录不正确而引起。也可能是由于权限问题或数据库已经被破坏而造成的。
如果用户在Opera游览器(或其他一小部分浏览器,如 KDE文件管理器中内置的浏览器)中使用baserunner应用程序,可能会出现不可预测的问题。使用这些浏览器时可能会在命令行中使用与当前页面相同的命令来调用新的页面时,出现刷新的问题。例如,如果在Opera浏览器中点击带有下面代码的文字或按钮,用户可能必须手动刷新才能看到新的结果,否则一切都没有变化,同样如果点下一个记录,也会有同样的问题。
<a href=/cgi-bin/baserun.exe?_ses={session}&_act=next>
当然,这也可以通过使用下面的代码来解决:
<a
href=/cgi-bin/baserun.exe/{rand}?_ses={session}&_act=next> or
<a href=/cgi-bin/baserun.exe?_ses={session}&_act=next&_fake={rand}>
此时,{rand}标志用于插入一个随机的数据,以告诉Opera游览器使用新的页面,这个随机数通过PATH_INFO变量传递给baserunner服务器,在服务器中将它忽略掉就行了。在使用表单情况下,使用这种方法将大大减少可能出现的问题。