02

Node项目加入windows系统服务并开机自动启动

使用模块

node-windows

npm官网: https://www.npmjs.com/package/node-windows
github官网: https://github.com/coreybutler/node-windows

1.使用命令行工具,进入项目根目录D:\www\web\itme1下载node-windows模块 :  npm install node-windows –save

2.在项目根目录创建nw.js文件

3.使用命令行工具,进入项目根目录运行 node nw.js,同时在项目根目录生成daemon文件夹,里面生成了以我的项目名称为文件名的exe文件和两个日志文件,当项目在浏览器中运行后,此文件夹还会生成几个日志文件。

4.进入系统服务,查找名称为shippositioning的服务是否正常启动。

01

iisnode+Node+Express+socket.io配置IIS环境的艰辛历程(未完)

系统基础环境说明:

Windows Server 2008 R2 Enterprise x64
IIS 7.5
Node v8.9.3

IIS新装模块:

URL Rewrite
iisnode-full-v0.2.21-x64.msi

Node应用程序:

express v4.15.5
socket.io v2.0.4

Node package.json文件如下:

Continue reading

十二 31

php源码在windows上正常运行,在linux不显示

如果确认不是php版本问题,需要检查定义常量时获取所在目录并定义ROOT根目录的方法。

windows系统路径格式与linux系统路径格式是不同的(“\”和“/”),所以在设置ROOT路径时需要先进行替换。

windows路径 D:\www\web
linux路径 /www/web

 

十二 28

MySQL语句:如果存在则更新,不存在则插入新记录

INSERT INTO … ON DUPLICATE KEY UPDATE …

表结构:

该语句是基于唯一索引或主键才可使用的,如下语句:

必要条件:其中字段id或keyword或count,至少有一个字段属性是主键或唯一索引。

语句解释:如果查询主键id=1或者唯一索引keyword=’织梦先生’的记录存在,则更新此记录的count字段 count=count+1;如果没有查询主键id=1或者唯一索引keyword=’织梦先生’的记录都不存在,则插入一行记录。

其它:

假定id=1的记录存在,则下面语句与上面语句是等效的

 

十二 18

JQuery获取DIV宽度与高度(width,padding,margin,border)

一般讲的宽度指的是内容宽度,但一个 div 的实际宽度不仅只于内容宽度,尤其在做 CSS 排版时更不能搞错,必须同时考虑 Padding、Border 与 Margin 的宽度,四个加起来才是 div 真正占有的宽度。

JQUERY 获取 DIV 宽度与高度(width,padding,margin,border)全都有了!

宽度与高度概念一样,只差水平与垂直向而已。

Margin 有个特色,就是当两个有 margin的 div 靠在一起时,两个 div 紧邻的 margin 不是相加,而是取其大者,举例来说,两个 10px margin 的 div 并在一起只会有 10px margin 的距离,若是一个 20px margin,另一个为 10px margin,则会有 20px 的 margin。

但是获取当前元素的全部宽度的时候,还是获取自身的margin+content+padding+border的值。

十二 06

两个故事理解阻塞非阻塞与同步异步的区别

故事一:

“阻塞”与”非阻塞”与”同步”与“异步”不能简单的从字面理解,提供一个从分布式系统角度的回答。
1.同步与异步
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)
所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由*调用者*主动等待这个*调用*的结果。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。 Continue reading

十二 06

mutable variable accessible from closure

使用WebStorm开发百度地图API时,在WebStorm中变量new_info提示:mutable variable accessible from closure…,译:可从闭包中访问的可变变量。在实际运行中,函数_translateCallback2()的形参info接收到元素的个数总是小于变量new_info传入元素个数,原因是在translate()函数的回调没有执行完,for就进行了下一个循环,或者是下几个循环。

解决方法:

1、在使用for循环时,不要使用带有回调函数的方法;

2、如果一定要使用带有回调函数的方法,那就用立即执行匿名函数括起来,如下:

(function(){ …… })(i);

 

十一 20

Linux修改开放22等端口方法

如果是Kali版本,直接看>>Kali开启SSH远程连接或者无法连接解决方法

第一种:

01假如要改SSH的默认端口(22),那么你只要修改:/etc/ssh/sshd_config中Port 22,这里把22改成自己要设的端口就行了,不过千万别设和现已有的端口相同哦,以防造成未知后果。

02假如要限制SSH登陆的IP,那么可以如下做:

先:修改/etc/hosts.deny,在其中加入sshd:ALL

然后:修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.0.241

这样就可以限制只有192.168.0.241的IP通过SSH登陆上LINUX机器了。当然在做为服务器方面,我都不装gnome和KDE的,而且很多东东都不装,这样增加安全系数。

第二种:

首先修改配置文件
vi /etc/ssh/sshd_config

找到#Port 22一段,这里是标识默认使用22端口,修改为如下:

Port 22
Port 50000
然后保存退出

不是一定要开两个SSH端口的,只是在linux主机是你的服务器时,防止因为未知原因造成新开设的端口不可用,而旧端口又关闭了,又没有其它可连接主机的方法,使用你无法登录主机,带来不必要的麻烦。

开启SSH服务

/etc/init.d/sshd restart

如果没有 /etc/init.d/sshd,那么就用如下命令:

/etc/init.d/ssh restart

开启SSH服务一定要使用绝对路径,有时直接用ssh restart会报错

自己可以试着来,

另一种启动SSH服务方式

先看看服务器有没有ssh

service –status-all

如果存在

[ - ]  sshd

[ - ]  ssh

可在使用

service sshd restart

或者

service ssh restart

这样SSH端口服务就启动了,如果上面设置了两个端口,那么22和50000将同时工作。

现在编辑防火墙iptable配置:

参考本站相关内容:

iptables查看、开放、删除端口、保存设置

Linux Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息

有直接改文件的 vi /etc/sysconfig/iptables ,一是不建议,二是不同Linux发行版文件路径不同,甚至于有些发行版,在/etc下根本就没有iptables文件,那文件也不是法定的就放在那个路径,但是命令是相同的。

使用命令增加iptables规则:

iptables -A INPUT -p tcp –dport 22 -j ACCEPT

开放其它端口方法,同上

生效iptables规则
/etc/init.d/iptables restart

在这里可能会出现问题,就是说找不到/etc/init.d/iptables

或者 执行上面命令报错,

一般,如果Linux主机做为服务器使用的话,安装宝塔或者WDCP就可以,

那样就不用你这样的操作命令了,在管理后台的界面点点点就可以了。

但是,如果想折腾的,在这里卡住,实在实在没有办法了,看我的另一篇文章。

我最新碰到的问题,在今年(2020年)新安装在Hyper-V中的Kali后,就卡在这里了,最后,就只能用粗暴点的方法解决Linux Kali iptables开放22端口失败等一系列问题

现在请使用ssh工具连接50000端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。

之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。

第三种:

如果以上两种方法都不好使,如果你的系统是kali的,下面这种方法一定是有效的。

Kali开启SSH远程连接或者无法连接解决方法

十一 17

vim常用命令汇总

所有命令都是在非输入状态下的,也就是按一下Esc后的状态。

标记类
命令 “ma” 用 a 标记当前的光标位置,命令 “md” 用 d 标记当前的光标位置,依此类推…,可以在文本中使用 26 个标记(a到z)。这些标记是不可见的,只是一个由 Vim 记住的位置。

m[a-z]

设置标记。

`[a-z]

调用标记,按键 反引号+字母。 Continue reading