Redis在windwos上安装使用

Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定。
详情请参考Redis官网:http://redis.io/
但有时候又想在windows下折腾下Redis,Redis官方是不支持windows的,只是Microsoft Open Tech group在GitHub上开发了一个Win64的版本,
项目地址是:https://github.com/MSOpenTech/redis

  1. 安装Redis
    在 Release 页面中,可以找到msi安装文件以及 .zip 文件(而且有3.0的版本,请下拉查找)。
    下载msi安装文件,选择安装目录,不断下一步即可安装成功。

  2. 启动Redis
    下载msi文件后,可以打开服务列表,看看是否多了一个“Redis”的服务,如果有并且该服务已经启动,就表示已经启动Redis了。如果没有,请以管理员身份打开cmd窗口,进入Redis安装目录,敲入如下命令:

    1
    redis-server redis.windows.conf
  3. 测试使用
    双击打开 redis-cli.exe , 如果不报错,则连接上了本地服务器,然后测试,比如 set命令,get命令

    1
    2
    3
    4
    5
    127.0.0.1:6379> set name yunzaifei  
    OK
    127.0.0.1:6379> get name
    "yunzaifei"
    127.0.0.1:6379>

    如果需要帮助,可以在 cli窗口中输入 help查看,例如:

    1
    2
    3
    4
    5
    6
    127.0.0.1:6379> help
    redis-cli 2.8.2400
    Type: "help @<group>" to get a list of commands in <group>
    "help <command>" for help on <command>
    "help <tab>" to get a list of possible help topics
    "quit" to exit

mongodb3在windows上安装和启动

Windows下安装MongoDB,虽然网上有很多攻略,但是还是有很多坑,为了以后少犯错误,特此记录。

官方下载地址:https://www.mongodb.org/downloads#production

###安装MongoDB

  1. 执行安装
    直接点击安装包一路next下去,你懂的。不过最好把安装路径修改到非系统盘。

  2. 配置
    比如我将MongoDB安装在D:\MongoDB\Server\3.2这个目录下,那么先要在目录D:\MongoDB(可以是任意位置,不过为了以后好管理,最好放到一块)下手动新建两个个文件夹:data、logs,再新建一个配置文件mongo.conf(名称可以任意取)。
    配置文件里面的内容是:

    1
    2
    dbpath=D:\MongoDB\data
    logpath=D:\MongoDB\log\mongo.log
  3. 启动MongoDB
    用管理员权限打开CMD,里面依次执行下面几行命令:

    1
    2
    cd D:\MongoDB\Server\3.2\bin
    mongod --config D:\MongoDB\mongo.conf --serviceName "MongoDB" --install

    这时去服务列表,可以看到多了一项MongoDB的服务,启动该服务,以后就开机自动启动MongoDB服务了。

备注:如果想要删除该服务,用管理员权限打开CMD,执行命令:

1
sc delete MongoDB
  1. 验证MongoDB服务
    验证服务是否正常启动,可以在cmd命令中敲入“mongo”命令,正常启动的话会看到提示信息,按ctrl+c退出当前命令。

nodejs安装

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
nodjs官网:https://nodejs.org

windows下安装

windows下的安装很简单,直接去官网下载安装包,下载完成后双击之后下一步直到完成。然后打开cmd命令行窗口敲入命令“node -v”,如果按照成功,就会显示对应的版本号。

不过windows下虽然安装的时候能够选择nodejs的安装路径(比如为了减少C盘空间,安装在D盘),但是npm的默认路径是在C盘AppData下,如果希望npm全局安装路径,可以进行如下操作:

  1. 假设nodejs的安装路径是D:\Program Files\nodejs,在此路径下建立node_globalnode_cache两个文件夹。在路D:\Program Files\nodejs\node_modules\npm下找一个名字为npmrc的文件,用记事本打开,修改为
    1
    2
    prefix = D:\Program Files\nodejs\node_global
    cache = D:\Program Files\nodejs\node_cache
  2. 修改环境变量,“我的电脑”右键“属性”-“高级系统设置”-“高级”-“环境变量”,在系统变量下新建NODE_PATH,输入是D:\Program Files\nodejs\node_global\node_modules。上面的用户变量都要跟着改变一下(用户变量“PATH”中的C:\Users\{用户名}\AppData\Roaming修改为D:\Program Files\nodejs\node_global\),保存修改即可。

linux下安装(以centos为例)

linux的安装可以分为yum命令安装和源码编译安装两种

  1. 源码编译安装
    去官网下载Source code文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #  tar xvf node-v4.2.4.tar.gz
    # cd node-v4.2.4
    # ./configure
    # make
    # make install
    # cp /usr/local/bin/node /usr/sbin/

    //查看当前安装的Node的版本
    # node -v

    这方式的缺点就是版本编译的时间较长,甚至中间会出现错误。

  2. yum命令安装
    在centos中执行如下命令

    1
    2
    3
    4
    //可以不添加“-y”参数
    # yum install -y nodejs
    //查看nodejs版本
    # node -v

    这样执行完之后,你会发现nodejs的版本是lts版本(最好安装了epel源),不是最新的,我想要最新的版本有没有啊,或者我想切换着不同版本使用!
    不怕,还有一个东西叫npm呢,NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。最新的nodejs版本都会集成安装npm,无须单独安装。不过,通过yum命令安装的nodejs竟然没有集成npm(centos7上如此,其他linux版本情况请自行查看),不怕,yum命令能安装nodejs,也能安装npm。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //安装npm
    # yum install -y npm
    //查看npm版本
    # npm -v
    //更新npm到最新版
    # npm install -g npm
    //安装传说中的n模块
    # npm install -g n
    //nodejs版本分为最新稳定版(stable)和长效版(lts),推荐安装长效版(lts)
    # n lts
    //安装最新稳定版(stable)
    # n stable
    //安装特定版本,比如v0.10.26
    # n v0.10.26
    //查看nodejs版本
    # node -v
    //查看npm版本
    # npm -v
  3. nodejs官方curl命令

官方网址:https://nodejs.org/en/download/package-manager/
在centos中执行如下命令

1
2
3
4
# 安装Node.js v8 LTS:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
# 安装Node.js 9:
curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -

此时如果执行“cd /etc/yum.repos.d && ls”命令,可以看到一个“nodesource-el7.repo”的文件,之后就可以使用yum命令安装

1
sudo yum -y install nodejs

结语

总得来说,还是yum命令安装最省心省力, 如果没有切换多版本的需求,可以使用官方curl命令的方式。

mongodb3在Centos7上安装和启动

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

官方教程:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat

安装MongoDB

  1. 配置yum安装源
    创建/etc/yum.repos.d/mongodb-org-3.2.repo文件
    1
    $ vi /etc/yum.repos.d/mongodb-org-3.2.repo
    文件里面写入如下内容:
    1
    2
    3
    4
    5
    [mongodb-org-3.2]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
    gpgcheck=0
    enabled=1
  2. 安装MongoDB的包和相关的工具
    当您安装的软件包,您可以选择是否安装当前版本或前一个。此步骤提供的命令为两者。
    要安装的MongoDB的最新稳定版本,发出以下命令:
    1
    $ sudo yum install -y mongodb-org
    要安装MongoDB中的一个特定版本,分别指定每个组件包并追加版本号的包名,如下面的例子:
    1
    $ sudo yum install -y mongodb-org-3.2.0 mongodb-org-server-3.2.0 mongodb-org-shell-3.2.0 mongodb-org-mongos-3.2.0 mongodb-org-tools-3.2.0

运行MongoDB

  1. 配置SELinux
    查看SELinux状态:

    1
    $ sestatus -v

    修改配置文件/etc/selinux/config

    1
    SELINUX=disabled
  2. 启动服务

    1
    2
    3
    4
    5
    6
    #启动服务
    $ systemctl start mongod
    #停止服务
    $ systemctl stop mongod
    #重启服务
    $ systemctl restart mongod
  3. 运行

    1
    2
    3
    4
    5
    $ mongo
    #进入admin库
    > use admin
    #创建超级管理员
    > db.createUser({user:'用户名',pwd:'密码',roles:['userAdminAnyDatabase']})
  4. 启用安全验证

    1
    2
    3
    4
    $ vi /etc/mongod.conf
    #增加如下内容
    security:
    authorization: enabled

卸载MongoDB

  1. 停止服务
    1
    $ systemctl stop mongod
  2. 卸载安装
    1
    $ sudo yum erase $(rpm -qa | grep mongodb-org)
  3. 删除数据文件
    1
    2
    $ sudo rm -r /var/log/mongodb
    $ sudo rm -r /var/lib/mongo

linux安全设置

我们在学会了VPS的安装和建站之后,肯定需要附带学习VPS的安全设置。因为VPS和主机不同,主机商可能会给我们备份,而且主机的安全性都有主机商承担。但是,如果现在我们在使用VPS,那VPS的安全性主机商是不承担的,既然我们选择使用VPS,就一定要做好安全维护。接下来就以Centos7为例进行讲解:

修改SSH端口

不管我们的网站是不是出名,很多黑客选手或者同行都是用软件直接扫描网站VPS/主机端口的,一般的大家都知道VPS端口为22,如果我们修改了端口至少先找不到端口,很多时候由于我们的端口是默认,即便主机安全也会留下大量的日志文件。这些文件就是被暴利破解的错误记录。

修改SSH端口的方法:登陆SSH,然后通过vi /etc/ssh/sshd_config 命令打开文件,修改其中的port后面的数字。

最后一步就是重启ssh,需要注意的是不同版本的linux是不同的命令。

Centos7: systemctl restart sshd

这个时候千万不要急着关闭当前ssh连接

因为你的VPS可能启动了防火墙,而你新设置的端口可能会被防火墙拦截

检查防火墙是否开发,以Centos7为例:

1
2
3
4
5
$ firewall-cmd --state
#如果没有开启,结果是
not running
#如果开启,结果是
running

永久开启端口:

1
2
3
4
5
6
#查看开启的端口号
$ firewall-cmd --zone=public --list-ports
#添加端口号
$ firewall-cmd --permanent --zone=public --add-port=[端口号]/tcp
#重启firewall
$ systemctl restart firewalld

保险起见,可以再打开一个ssh连接测试,成功后就可以关闭ssh连接了。

禁用root账号

一般的我们使用账户登陆都直接用ROOT登陆。如果我们把ROOT账户禁用,添加一个自己知道的账户,那VPS的安全入口基本完成。至少除了猜测密码还需要猜测用户名。

  • 第一步 新建用户
    1
    2
    3
    4
    #为登录名sam产生一个主目录/usr/sam
    $ useradd –d /usr/sam -m sam
    #为用户名设置密码
    $ passwd sam
    然后需要输入两次密码。
  • 第二步 设置禁止ROOT用户
    就是我们需要设置禁止ROOT用户,这需要编译文件的。我们可以通过VI命令操作

    1
    $ vi /etc/ssh/sshd_config

    和之前的设置端口一样,编译sshd_config文件,把PermitRootLogin中的YES改成NO
    Imgur
    保存退出,重启SSH:

    Centos7: systemctl restart sshd

  • 第三步,提权
    用我们新添加的用户名登陆,然后su root进行提权,让新用户有ROOT用户有的最高权限。

保险起见,还是应该打开一个新的ssh连接测试,成功后再关闭原来的ssh连接。

SSH禁止密码登录

如果担心密码被暴力破解,可以添加SSH登录,并且禁止密码登录。这样每次登录不要输入密码,并且更安全,唯一不足的地方就是换个电脑就要重新折腾一次将本地公钥内容追加到远程主机的授权文件(authorized_keys)中。

  • 本地生成密钥对
    1
    2
    # 在本机命令行控制台输入:
    $ ssh-keygen
    此时会在系统用户的.ssh目录下生成一对密钥文件:私钥文件id_rsa和公钥文件id_rsa_pub。
  • 将本地公钥内容追加到远程主机的授权文件(authorized_keys)中

本地查看id_rsa_pub文件内容,复制得到的公钥字符串,在远程服务器上编辑authorized_keys文件

1
$ vi ~/.ssh/authorized_keys

将刚刚得到的本地公钥字符串添加到该文件的末尾(如果是新建的文件就直接添加),编辑保存完成后,修改该文件的权限

1
$chmod 600 .ssh/authorized_keys
  • 修改ssh配置

编辑远程服务器上的sshd_config文件:

1
$vi /etc/ssh/sshd_config

找到如下选项并修改(通常情况下,前两项默认为no,地三项如果与此处不符,以此处为准):

1
2
3
4
5
#启用密钥验证
RSAAuthentication yes
PubkeyAuthentication yes
#指定公钥数据库文件
AuthorsizedKeysFile.ssh/authorized_keys

同时禁止密码登录

1
2
#将PasswordAuthentication yes 改为
PasswordAuthentication no

编辑保存完成后,重启ssh服务使得新配置生效:

1
$ systemctl restart sshd.service

配置epel源

具体请参见:http://fedoraproject.org/wiki/EPEL
通过wget命令下载RPM文件,然后安装。

1
2
3
RHEL/CentOS 7
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ rpm -ivh epel-release-latest-7.noarch.rpm

如何检查epel是否安装成功?使用一下命令:

1
# yum repolist  

使用GitHub和Hexo搭建免费静态播客

习惯自己写Blog的朋友一定不会陌生Wordpress,或许也曾在新浪博客和QQ空间留过脚印,但静心认真思考一下,似乎我们又总是向往更加简单自由的写作方式。GitHub给我们提供了一个无限的空间,我们需要珍惜使用,而Hexo的出现从某种意义上来说代替了Jekyll,让我们可以更专注于写作本身。本文主要介绍自己的实践心得并不断完善内容,衍生知识和原理推荐大家认真阅读官网的手册,其它推荐参考内容链接在文中也会标注出来。

扩展阅读

Hexo Docs - http://hexo.io/docs/

准备工作

注意 本文主要针对平台windowsHexo 3.x

了解Hexo

A fast, simple & powerful blog framework

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
hexo.io

安装GIT

GitHub Windows简单可依赖,安装完成后依据提示操作即可,So Easy

安装Node.JS

Node.JS
注意 安装完成后添加Path环境变量,使npm命令生效。新版已经会自动配置Path

安装Hexo

配置好GitHub家目录后,双击桌面上的Git Shell,输入npm命令即可安装

1
2
npm install hexo-cli -g
npm install hexo --save

Hexo初始化配置

创建Hexo文件夹

安装完成后,根据自己喜好建立目录(如E:\GitHub\hexo),进入Git Shell切换到该路径下E:\GitHub\hexo执行以下指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
hexo init

#安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
$ hexo init <folder>
$ cd <folder>
$ npm install

#新建完成后,指定文件夹的目录如下
.
├── _config.yml
├── package.json
├── scaffolds
├── scripts
├── source
| ├── _drafts
| └── _posts
└── themes

安装Hexo插件

1
2
3
4
5
6
7
8
9
10
11
12
13
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-server --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-renderer-marked@0.2 --save
npm install hexo-renderer-stylus@0.2 --save
npm install hexo-generator-feed@1 --save
npm install hexo-generator-sitemap@1 --save

本地查看效果

继续执行以下命令,成功后可登录localhost:4000查看效果

1
hexo server

Hexo简写命令

1
2
3
4
hexo n #生成文章,或者source\_posts手动编辑
hexo s #本地发布预览效果
hexo g #生成public静态文件
最后我选择手动同步更新至GitHub

部署静态网页到GitHub

注册设置GitHub

  1. 登录GitHub,注册自定义用户名如yunzaifei
  2. 在主页右下角创建New repository,name必须和用户名一致如http://yunzaifei.github.io
  3. 首次创建耐心等待10分钟左右审核,之后即可访问静态主页如http://yunzaifei.github.io

    同步内容至GitHub

  4. 下载GitHub Windows
  5. 设置Local pathE:\GitHub</font>
  6. 运行Git Shell切换到如E:\GitHub\hexo路径下
  7. 执行hexo g命令生成public文件夹
  8. 把生成的内容全部拷贝到Local path或其子目录
  9. 运行GitHub确认修改信息后执行右上角的Sync同步
  10. 最后访问主页观察效果如http://yunzaifei.github.io

Hexo主题

选择自己喜欢的主题
Hexo Themes - http://hexo.io/themes/
Themes Wiki - https://github.com/hexojs/hexo/wiki/Themes

常见问题

1.修改配置文件时注意YAML语法,参数冒号:后一定要留空格
2.中文乱码请修改文件编码格式为UTF-8

如何迁移至Hexo

http://hexo.io/zh-cn/docs/migration.html