Ubuntu下部署ScriptCase应用实例

使用ScriptCase开发的应用是完全开源的PHP代码,和ScriptCase本身已无任何关系;但为了便于部署,SC提供了部署的配置界面。

1. 在Ubuntu下安装Apache、PHP、MySQL:详细的教程见

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字段进行判断的问题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/19725.html