php ci vue,PHP CI+Postgresql+Frozen+Vue.js+apache腾讯云搭建记录系统总结
之前采用Spring-boot写的个人信息系统,采用这个框架的特点是:1.功能齐全,可以自动导入工具包。2.采用JPA,数据库映射方便。3.每次启动需要关闭系统再次运行,耗时。4.数据库内部映射机制不明,直接操作数据库时会遇到问题,将blob数据存成了大对象类型数据,不能方便查看。5.与其他语言框架的兼容性相对差。刚开始用这个框架是因为第一个项目用的,比较熟悉,于是自己搭建了一个服务自己使用。后来
之前采用Spring-boot写的个人信息系统,采用这个框架的特点是:
1.功能齐全,可以自动导入工具包。
2.采用JPA,数据库映射方便。
3.每次启动需要关闭系统再次运行,耗时。
4.数据库内部映射机制不明,直接操作数据库时会遇到问题,将blob数据存成了大对象类型数据,不能方便查看。
5.与其他语言框架的兼容性相对差。
刚开始用这个框架是因为第一个项目用的,比较熟悉,于是自己搭建了一个服务自己使用。后来做了第二个项目用phpCI框架的,同时我负责项目工作进度安排,联系、服务器部署等,对这个框架比较熟悉,并且php是解析式的语言,容易修改。因此想用心的框架去重写系统。同时spring-boot适合页面的前端框架,用在手机上比较难受。因此需要重新写页面。
根据新的需求,重新搭建的服务采用PHPCI框架写后端服务,Postgresql做数据库,Apache做服务器(原来采用nginx,但是由于路径解析有问题,因此放弃了。)。
Postgresql:数据库原来采用JPA映射的方式,在数据库本身的创建语句中没有默认值,主键根据序列值递增的设置。因此修改数据库设计,增加默认值、主键根据序列值递增变化、blob数据改成text类型、增加必要的字段。数据blob处理时有个细节,大对象是按页存储的,原来数据只保存了loid,通过loid可以在pg_largeobject表中找到文件保存的信息,将文件读取出来,再进行拼接,其中每一页的前两个字符要舍去,才能拼接处正常的字符串。同时一页有4098字节。处理方式示例如下。
foreach ($res as $r){
$i= 0;
if($k >= 0) $i = 2;
$k += 1;
for (; $i < strlen($r['data']) && $i < 4098; $i+=1){
$hex .= $r['data'][$i];
}
}
for ($i=0; $i < strlen($hex)-1; $i+=2){
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
PHP CI:主要写数据的增删改查、登录和访问权限验证的接口、以及原有数据处理接口。
Frozen+Vue.js:Frozen是腾讯出的框架用于手机端的页面,Vue.js是轻量级的JS框架。由于Vue.js清晰易懂,所以采用Vue.js。Frozen用于界面设计,其中主要用到了表单组件、Tab、布局等方面的CSS。采用完全的前端代码,通过AJAX进行数据访问。在高德地图调用方面,主要涉及图标位置的摆放偏移,以及实现聚点效果。
环境部署:
下载Git实现代码克隆与更新,Git有ignore可以实现日志文件忽略更新。
PHP7.0可向下兼容,申请了一个腾讯云服务器,安装了PHP7.0,以及PHP-psql组件。通过php index controller/method 命令测试php CI可以正常运行。
安装apache2.4,以及apache-php7的组件,才能够解析php。在目录上,采用Alias重定向访问路径对应的目录,实现不需要将项目部署到apache默认的目录中。
在新服务器上的部署比较顺利。旧服务器上由于有了nginx和php老版本,出现许多问题,尤其nginx不能识别php-ci的路径,至今未解决。php可以通过卸载老版本,并且删除旧的命令解决旧版本问题。在腾讯云上数据库采用localhost访问,IP是公网的访问不到。
更多推荐
所有评论(0)