使用ScriptCase开发的应用是完全开源的PHP代码,和ScriptCase本身已无任何关系;但为了便于部署,SC提供了部署的配置界面。
1. 在Ubuntu下安装Apache、PHP、MySQL:详细的教程见http://www.linuxidc.com/Linux/2011-06/37823.htm;
2. 使用SC的部署工具对程序进行打包,打包为一个zip文件(全部都打包进去的话要60M以上,确实挺大);
3. 用FTP工具上传到Ubuntu,用unzip工具解压到需要安装的目录(可以新建一个空目录,将压缩文件拷贝进去);
4. 比较重要的一点:将_lib目录的权限打开,命令为: sudo chmod 777 _lib -R
5. 在浏览器输入地址进行配置(一般情况下只需要重新配置一下MySQl数据库的连接即可);
ScriptCase安装在Windows平台下,部署的时候需要部署在Ubuntu环境下,在进行测试的时候发现有个功能无论如何都不能生效,代码如下:
// Check for record
$check_sql = “SELECT islocked”
. ” FROM tt”
. ” WHERE ID = ‘{ID}'”;
sc_lookup(rs, $check_sql);
if ({rs} == false){
}else{
if ({rs[0][0]} == 1){
sc_field_readonly({Title}, ‘on’);
sc_field_readonly({filename}, ‘on’);
sc_field_readonly({Comment}, ‘on’);
sc_field_display({description}, ‘off’);
sc_btn_display(‘new’, ‘off’);
sc_btn_display(‘delete’, ‘off’);
sc_btn_display(‘update’, ‘off’);
}
其实这是个很简单的功能,是希望如果已经锁定的话,不允许用户新建、删除、更新,在Windows环境下正常,但在Ubuntu下无法运行成功。查阅资料发现,在定义数据表字段的时候,将islocked定义为bit类型,Windows和Linux对bit的存储是不同的,因此导致故障。如果需要对bit进行判断,正确的写法应该是这样:
if ((ord({rs[0][0]}) == 1) || ({rs[0][0]} == 1)){
用这种方式判断,就可以同时解决Windows和Linux对bit字段进行判断的问题。
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2