服务器配置

  • 类型:阿里云学生服务器
  • 地域:华南 1(China South 1 Zone A)
  • 实例系列:系列 I
  • 实例规格:1 核 2GB(标准型 s1,ecs.s1.small)
  • I/O 优化:非 I/O 优化实例
  • 网络类型:经典网络
  • 公网带宽:按固定带宽
  • 当前使用带宽 :1Mbps
  • 系统盘:40GB 普通云盘
  • 数据盘:无
  • 操作系统:CentOS 7.3 64位

远程连接登录

ssh登录管理服务器:

  • ssh 主机

ssh 192.168.1.155(表示用电脑用户登录到服务器)

  • ssh 用户@主机

ssh root@192.168.1.155(表示用root登录到服务器)

  • ssh 主机 -l 用户名 -p 端口

ssh 192.168.1.155 -l user2 -p 8080 (表示user2用户用8080端口连接到192.168.1.155的服务器)

创建用户

  • 为了安全起见,最好创建一个普通权限的用户用于运行程序,可以将下面的username换成任意的名字

user add username

  • 给新用户分配一个密码,输入命令之后就会提示你输入新密码,然后按提示操作就好了

passwd username

用scp命令上传和下载文件

  • scp root@192.168.1.155:1.txt 2.txt

(把服务器的1.txt下载到本地,并且重命名为2.txt)

  • scp 2.txt root@192.168.1.155:3.txt

(把本地2.txt文件上传到服务器的root目录下,并且命名为3.txt)

  • scp -r 的话表示上传或者下载文件夹
  • scp -表示加上端口信息(P为大写)

配置服务器

  • 把yum更新到最新版本

yum -y update

  • 我们将使用最新源代码构建Node.js,要进行软件的安装,需要一组用来编译源代码的开发工具:

yum -y groupinstall "Development Tools"

yum -y install screen

安装nodejs

  • 跳转到 /usr/local/src , 这个文件夹通常用来存放软件源代码

cd /usr/local/src

  • 选择下载 nodejs 代码,也可以使用scp命令直接上传。

wget http://nodejs.org/dist/v0.12.5/node-v0.12.5.tar.gz

  • 解压

tar -xzvf node-v0.12.5.tar.gz

  • 进入解压后的文件夹

cd node-v0.12.5

  • 执行配置脚本来进行编译预处理

./configure

  • 编译源代码并安装

make && make install

  • 当编译完成后,需要使之在系统范围内可用, 编译后的二进制文件将被放置到系统路径,默认情况下,Node二进制文件应该放在/user/local/bin/node文件夹下。

  • 执行下面,测试是否安装成功:

node -v
npm -v

  • 如果输出相应版本号,表示已经安装完成nodejs,可以开始部署程序了。

安装基础模块

  • 安装git

    yum install git

    卸载git

    yum remove git

  • 安装 cnpm (远离npm的龟速吧)

npm install -g cnpm --registry=https://registry.npm.taobao.org

  • 安装 express 和 forever(一个用来确保应用程序启动并且在需要时重启的非常有用的模块),这两个模块都推荐 global 安装

cnpm -g install express forever

  • 安装 gitbook

    cnpm install -g gitbook

    让gitbook支持命令行

    cnpm install -g gitbook-cli

    测试安装完成

    gitbook -V

  • 建立超级链接, 使node和npm命令全局有效。通过创建软链接的方法,使得在任意目录下都可以直接使用node和npm命令,不然 sudo node 时会报 “command not found”:

ln -s /usr/local/node/bin/* /usr/sbin/

安装mongodb

软件安装位置:/usr/local/mongodb
数据存放位置:/var/mongodb/data
日志存放位置:/var/mongodb/logs

  • 首先下载安装包

cd /usr/local

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.4.tgz

  • 解压安装包,重命名文件夹为mongodb

tar zxvf mongodb-linux-x86_64-3.4.4.tgz

mv mongodb-linux-x86_64-3.4.4 mongodb

  • 创建数据和日志存放目录

mkdir /var/mongodb

mkdir /var/mongodb/data

mkdir /var/mongodb/logs

  • 打开rc.local文件,添加CentOS开机启动项:

vim /etc/rc.d/rc.local

  • 将mongodb启动命令追加到本文件中,让mongodb开机自启动:

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork

  • 关闭 vim 后,直接手动启动mongodb

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork

  • 看到类似的信息,说明已启动成功。我在这里发了个傻,以为10210是port号,导致后面设置port时折腾了好久。其实这里的 forked process 和 port 号是两个东西, 这个是程序本身在Server上的进程。

  • 启动mongo shell

cd /usr/local/mongodb/bin/

./mongo

在 mongo shell 中创建管理员及数据库

use admin //admin 数据库
db.createUser({
user: "admin",
pwd:"a7677188.",
roles:["userAdminAnyDatabase"]
})

到这里 mongodb 基本已经安装设置完成了。具体数据的迁移导入可自行研究。

部署测试项目

  • 新建项目文件example.js。

cd ~

touch example.js

  • 使用vim编辑器打开项目文件example.js。

vim example.js

  • 输入“i”,进入编辑模式,将以下项目文件内容粘贴到文件中。
  • 使用“Esc”按钮,退出编辑模式,
  • 输入“:wq”,回车,保存文件内容并退出。

项目文件内容:

const http = require('http');
const hostname = '***.***.***.***(ECS公网IP地址)';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

注:项目文件内容中的’ECS公网IP地址’处需填写实际的ECS公网IP;项目文件内容中的3000为端口号,可以自行定义。

  • 运行项目。

node ~/example.js

注:可以使用命令“node ~/example.js &”将项目置于后台运行。

  • 使用命令查看项目端口是否存在。

netstat -tpln

如果访问项目长时间没有反应,请参考这里安全组规则介绍:https://help.aliyun.com/document_detail/25471.html,去设置一下对应的安全组规则。

  • 注意,如果直接 npm start 或 node app.js 启动,则一旦退出 ssh 远程登陆,node项目 就会停止运行。

因此我们就要使用到之前安装的 forever 来启动 node 项目了。

forever start example.js

部署node项目

  • 通过 git 从代码库上 clone 项目至服务器,
  • 执行 npm install 安装依赖
  • 执行 forever start app.js

转载请标注原文地址