501-283-1719

在ubuntu下php服务器的搭建:

  1. sudo apt-get update
  2. apt-get install mysql-server
  3. apt-get install mysql-client
  4. apt-get install apache2
  5. apt-get install php7.0
  6. apt-get install php7.0-mysql  /这里千万注意别停
  7. 重启apache2,新建phpinfo文件,浏览器访问。大功告成。

数据库连接失效导致程序异常怎么办—-mybatis数据库连接池配置

以mysql为例,数据库连接默认是8小时,也就是说一个连接8小时未使用,就将被关闭,但是如果你使用了数据库连接池技术,当连接被关闭之后,程序并不知道这是一个失效的连接,依然进行使用,就会导致程序出错。怎么办呢?

1.修改mysql的默认时间,可以最大改为一年。(但是不推荐,这样缺乏可移植性,若是文档不全的话,服务器做了迁移,运维都不知到怎么搞了)

2.连接池在分配连接给请求时,先检查连接的有效性,无效就丢弃重新获取。

那么,连接池如何配置呢?连参数丢不知道,百度一下 《mybatis数据库连接池配置》出来的全是垃圾一堆,都是用了第三方连接池,而我们项目小,用mybatis自带的就好了。那么自己去看源码吧,在源码的 org.apache.ibatis包下发现了一个名为datasource的包,不用说,这就是连接池包了,进去,发现有 jndi,pooled,unpooled三个包,而默认的mybatis的conf.xml中就是用的是pooled,因此进去,只有5个类,依次查看源码,在poolState类中找到:

看到什么Driver,name,password是不是很亲切,不就是在conf.xml里面配置的参数么,继续看,还有很多,找到我们想要的关键属性参数:带有ping的三个,就是测试有效性的没错了(你为啥这么肯定?告诉你,这是学计算机的人的直觉),我在官方文档里咋没看到这些参数呢?根据三个参数的名称和类型推断一下他们对应的value是啥,如下图:

又想问我咋知道?举个例子:poolPingEnabled pool是池的意思,ping代表测试,enabled是可不可用,典型的boolean类型,所以该参数的value应该为true or false,看表意:是否进行测试,当然要测试啦,所以填true。后面的一样的道理,带有query的是查询,第三个一看就是时间间隔撒。

好了,这就把自带连接池配置好了,每隔360000秒就会自动去测试连接的有效性。发送一个 select 1 查询语句去测试。

内网穿透,微信防拦截

背景:

1.自己做的网站,想发布出去,又不想花钱买服务器

2.自己的网站,没有域名,放到微信中传播,微信会拦截,体验差

介绍一款内网穿透工具:ngrok   <  下载地址>  可以不用注册,直接下载

原理,优点啥的就不细说了,百度一堆,不好我也不会用了。

Linux下:

1.进入下载目录,找到名为  ngrok 的文件

2.执行命令:ngrok http 8080      命令行里就会产生外网网址,复制到浏览器就可外网访问,微信也不再拦截这个地址。

BUT,如果就这么多,那就没必要写这篇文章了。

终端一关闭,外网就不能访问了,必须要后台运行!但是 ngrok http 8080 & 显然是不行的,怎么办? 上神器screen

1.执行 sudo apt-get install screen

2.执行screen -S name   /name为本次任务的名字,随便起,待会儿靠名字切换任务,建议取得有意义如:ngrok80; ngrok8080

3.执行 ./ngrok http 8080   出现网址之后将其赋值下来。

4.按Ctrl+a+d 退出。

5.ps -x 查看一下,是不是已经在后台了啊

哇,第二天起来,再访问一下,发现悲剧了,不能访问了,ngrok死了,是它主动死的。

哦,原来没有token不能长时间使用。所以,再去官网注册吧,319-591-9216  ,直接注册你是别想了,一直在报错 faild 。。。,所以选择github注册登录吧,登录进去选择 Dashboard->Explore ngrok->Auth 找到一大串的token,复制下来。到服务器的ngrok程序所在目录,执行:./ngrok anthtoken  <yourToken> (只用执行这一次,后面不用再执行了)

接下来就和上面一样正常使用ngrok了,不会被限时了。

 

医院内室内定位导航系统(导医助手)

项目地址:/p8cjniuvd.bkt.clouddn.com/mv/%E6%BC%94%E7%A4%BA%E8%A7%86%E9%A2%91.mp4

如果视频点击不能直接播放,复制链接到迅雷下载即可

作品简介:

本项目为医惠科技有限公司外包的医院内的室内导航定位系统,项目严格按照命题要求开发,同时具有独特的创新点,总体来说项目具备基于机器视觉的室内AR导航、人脸唤醒、语音交互、二维码处理以及附加的室外导航功能。项目分为机器人端APP和用户端APP。

机器人端APP运行在医院大厅的导医机器人上,通过检测人脸来唤醒应用,软件能通过语音交互回答用户的问路提问,并在屏幕上展示导航的信息以及一个供用户扫描进而进行持续导航的路径二维码。

用户端APP主要进行基于机器视觉的AR导航。用户可以通过扫描机器人APP提供的路径二维码进行导航,也可以自行输入起点终点进行路径规划与导航。同时用户APP还具有室外导航的功能,方便用户寻找停车场等室外目标。

本系统的研究领域是医院内的室内导航,本质上还是属于室内导航,属于一个比较新的课题,同时本项目将采用大量的先进的技术用以提高用户体验,需要解决的目标问题大致有以下几点:

  1. 室内定位导航:

本系统需要解决的是室内的定位于导航两大难题。技术上将采用机器视觉进行定位导航。

  1. 图像分析:

图像分析是本系统的核心技术,定位于导航都需要直接依赖图像视觉分析。本功能旨在模拟人对图像的理解进而实现机器导航。

  1. 类AR导航:

在导航领域,基于路线展示的导航不太易于理解,而AR模式是最为直观的方式,因此本系统在当行中将采用类AR方式的导航指引,更为直观。

  1. 语音交互:

本功能不属于项目核心功能,但是却是必不可少的功能,因为采用语音交互提高了用户的体验,同时也兼顾了不会打字的人。

  1. 人脸唤醒:

导航机器人在无人的时候保持睡眠,在检测到有人之后才唤醒服务。

  1. 室外导航:

为室外寻找大楼、停车场等需求提供解决方案。

  1. 二维码处理:

提供机器人和用户APP之间信息交换的渠道(扫码导航)

效果截图:

colza

项目地址:/gitee.com/ypbck/smartcc

项目是四端程序:机器人控制端py程序,机器人端监控端android程序,用户端Android,web消息控制服务器端程序

作品简介:

本项目是可自主巡逻的智能监控机器人,由机器人、机器人主控模块、视频监控模块、用户端APP四部分组成。用户可通过网络远程查看机器人端的实时监控信息、控制机器人运动(手动/语音控制),亦可在地图上规划一条路线由机器人以自动驾驶的方式进行自主巡逻。

机器人为通用平台,具备自动驾驶功能,并可根据用户规划的路线进行巡逻。

机器人主控模块由python开发,主要用于机器人的运动控制、自动驾驶、按路巡逻功能。

视频监控模块主要用于实时视频采集与回传。

用户端APP主要用于控制机器人、查看监控信息、查看机器人位置等。用户可通过APP对机器人进行手动控制、语音控制,亦可在地图上画一条路线让机器人按路线巡逻。

安装说明:

本项目为物联网项目,缺少硬件设备将影响作品效果,因此具体功能请观看演示视频,敬请谅解。

1. APP端的安装需要同意应用权限申请,否则APP无法正常运行。

2. 在没有检测到相应硬件(巡逻机器人)的条件下,视频监控功能无法正常使用,因此在用户APP端查看监控为黑屏。

3. 没有检测到机器人在线时,对机器人的控制必然是不会生效的。

演示效果:

巡航机器人实物图:配备超声、红外、GPS、陀螺仪、加速度计等传感器,拥有一台微型计算机作为大脑,通过机器人主控模块的控制使其具备自动驾驶功能。

设计思路:

通过对当前监控/安防体系的分析发现监控系统一般都是静态的,缺乏灵活性:

1. 比如家里安装监控需要每个房间都安装,且还存不能覆盖整个房间的问题。

2. 室外监控只能在一个方向工作,路口需要安装大量的摄像头。

3. 室外巡逻耗费人力。

本项目正是从这个角度出发,力图构建一个灵活的、能动的、能自主巡逻也能接受控制的智能的监控。由于自主巡逻属于自动驾驶范畴,因此项目将监控与自主巡逻功能分离,独立衍生出具备自动驾驶功能的巡逻机器人,机器人搭载有监控模块,使其完成灵活监控的使命。因此本项目中的机器人成为一个通用的平台,搭载不同的设备模块即可完成不同的功能使命。

而项目的用户端APP是供用户使用的,用户可通过APP查看机器人端的实时监控、位置等信息。也能通过APP控制机器人的运动,还能在地图上规划一条路线使机器人按照路径巡逻。

视频监控模块同样也是本项目的核心模块。按常规做法本应采用视频采集卡+控制程序实现本模块的功能,但是由于项目组经费有限,恰巧手边有空闲的二手手机,因此便利用这部二手手机当做视频采集设备,在其上运行视频处理程序(也就是作品文件夹中的机器人端APP的由来),这样的设计既节约了成本又进行了废物利用。特别注意的是,当本项目应用于家庭监控时,许多人家中都有废置手机,因此都可以实现资源最大化的目标,是具备一定的群众基础的。同时本项目也提供了不使用手机而使用视频采集卡传感器进行视频采集的接口,二者可以轻松变换。

 

574-291-0112

项目地址:/gitee.com/ypbck/getMark

本项目是为新疆教育学院开发的成绩查询集合站点。融合了四六级、MHK,计算机考试,考研等考试的成绩查询(项目还在不断完善中。。。),本项目的意义主要在于将这些琐碎的站点融合起来,为公众号的运营吸粉,同时,也能掌握大家第一手的成绩信息。

(307) 347-9755软件架构

  1. 服务器端用php为用户提供成绩查询界面以及接受用户的查询请求参数,php调用py目录下的对应py脚本进行成绩查询,并将成绩结果返回给php,展示到页面上。
  2. 对于有验证码的成绩查询会两次调用py脚本,两次调用的会话由cookie保持,cookie将会在第一次请求时保存在文件中,第二次访问时读取文件
  3. php获取py返回的参数时会有乱码,故使用二进制编码的方式加以解决

新疆师范大学寒假成绩代查系统

项目地址:magazinist

背景:我校教务系统部署在内网,2017年学校关停了VPN,因此寒假期间在家不能查询成绩,大家心里都空落落的,看不到成绩不知道是否会二战

简介:由于有庞大的用户需求,因此在放假回家的火车上开发了一套成绩代查系统,为广大同学提供成绩查询服务。寒假期间累计提供20000+次查询服务,访问峰值160+,期间无宕机停服现象

技术:python爬虫+后门程序+jsp。将python爬虫与后面程序一起植入校园网络内,后门程序用于从服务器获取待查询的学号,而后爬虫从教务系统爬取成绩,再通过后门程序上传服务器。用户只需要访问jsp提供的查询页面,输入学号密码即可看到成绩

查成绩页面:

查出来的成绩:

CentOS下主DNS、辅助DNS以及子域DNS的配置

下面讲述CentOS下基于BIND的主DNS、辅助DNS以及子域DNS的配置

同样的,先执行 firewall-cmd –permanent –add-port=53/UDP  不然配置了半天,DNS不能用,还以为配置不正确呢。

有些人上来就执行service firewalld stop ,固然也可以使服务正常访问,但是这是不安全的,作为一个成熟的老隐蔽,应该多考虑安全性,采用白名单访问方式。

 


一:主DNS的配置:

1.使用nmtui命令打开网络配置面板,配置IP为静态IP(手动配置IP):nmtui真好用!

2.打开 /etc/named.conf 文件,将listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; 用/注释

再加一句: allow-query { any; };

3.打开区域文件:/etc/named.rfc1912.zones,加上下面的配置(我要添加jsj.com的域,因此这样写,类似,你可以写 love.cn)

实际上,下面的配置已经不是单纯的主DNS配置了,因为加上了allow-transfer {ip;}; 这是在配置辅助DNS,意思是允许IP所指的这台主机来拷贝此DNS上的解析记录文件,如果只配置主DNS的话,可以不配置这一项内容(IP设为none)

4.在/var/named/ 目录下新建jsj.com.zone  以及 jsj.com.rev的正反向区域文件。

文件内容如下(文件格式要求严格,可以直接使用命令 mv named.localhost jsj.com.zone 从模板文件生成区域文件,做修改就行)

图中ypb.jsj.com是配置的子域,子域服务器subdns.ypb.jsj.com  他的ip是 192.168.151.16(不配置子域的可以不管这一段)

5.配置反向区域文件 /var/named/jsj.com.rev 也可以从模板文件 named.localhost中复制而来

6.测试 nslookup命令


二:辅助DNS配置:如上问所述,已经提到辅助DNS了,也就是红线所示。192.168.151.16这台机器就是辅助DNS。

1.

2.在辅助DNS机器上的/etc/named.rfc1912.zones文件中这样配置:区域文件来自192.168.151.6的这台机器:

3.在/etc/named/目录下创建slaves目录,然后授权,为了省事,直接上 sudo chmod -R 777 slaves(实际不可取,777请勿乱用)

这个目录是为了存放从主DNS复制过来的区域文件的

4.执行 servie named start 同时在主DNS上执行 service named restart

这时,在辅助DNS的slaves目录下就看到区域文件从主DNS上复制过来了。(别傻哦,两台机器的网肯定要通才行哈)

测试:大功告成!


子域服务器的配置:

这不是已经指明了ypb.jsj.com是一个子域,且位于192.168.151.56机器上嘛,所以去配置192.168.151.56机器即可。详情就不展开了

7633172902

项目地址:/gitee.com/ypbck/news

项目介绍:

学院活动与工作新闻动态展示:关键在于可以将以word撰写的活动简报直接转化为网页,省去了编辑新闻的时间。直接可以将简报用于向全校师生开放,提高活动透明度

4404769692软件架构:

基于jsp servlet的web架构。管理员在后台上传一份简报,只需要填写标题即可完成发布。后台收到文档后调用word to html模块将文档解析成网页存到对应目录之中,解析需要耗费一定的时间,但是完成解析时候将在服务器创建对应新闻动态的静态页面,后面加载时会像闪电一样迅速

效果展示:

 

2095145869

文章内容:

1.Apache的用户访问控制配置

2.Apache的多种方式虚拟主机配置

特别注意的是,无论干啥配置,先配置一下防火墙策略,允许该项操作。

Apache的配置,防火墙应该配置:firewall-cmd –permanent –add-service=http


配置详情:

首先在 /etc/httpd/conf/httpd..conf 文件中添加以下节点内容:

然后添加密码文件:

注意事项:

1:密码文件的路径,文件名一定要对应于在上面配置文件里写的路径

2.密码文件必须是隐藏文件,也就是文件名前加一个点,非隐藏文件不能访问(我也不知道为啥)

3.第一次创建密码文件时要加-c参数,后面再添加用户时不用,否则会覆盖原文件

 

好了,输入service httpd restart 重启Apache即可访问了。

在浏览器输入IP/ypb/index.html就会弹出认证对话框,如图:

注意哈,上面httpd.conf的配置文件中指明的需要认证的目录是:/var/www/html/ypb 因此需要建立此目录,并在里面新建index.html文件。

此时,访问其他目录下的网页并不需要认证,如浏览器直接输入IP,即可直接访问Apache


下面是多种虚拟主机的配置:

1.基于IP的虚拟主机:

在VM中网络设置上添加一块网卡,并为之配置IP:

在 /etc/httpd/conf/httpd.conf 文件中添加以下内容:(IP为本机两块网卡的IP)

service httpd restart 重启Apache即可在浏览器通过两个IP访问到不同的内容。访问截图就不贴了。

2.基于端口的虚拟主机:

在httpd.conf的配置中,把两个IP改为相同的,但是端口不同即可

注意,还有一条就是添加一句:Listen 8080(或者你要的其他端口)

3.基于域名的虚拟主机:(本质上还是基于IP,因为需要多IP才行·,只是为IP添加了DNS解析而已。)

添加DNS记录:

配置httpd.conf:和前面基于IP的无异,只是添加了ServerName属性,值为域名,仅此而已

访问测试: