Debian 上安装 Node 服务器

本教程只针对我自己,记录用,而且并不是完整版,不对其他人负责。请尽量不要参照本文

最近一直在学习 NodeJS,本地上玩的差不多了,总要去架设个服务器跑一下,选择了digitalocean加的$5/mo 服务,安装了个 Debian,至于为什么是 Debian,好吧,因为。。。

言归正传,一遍操作一遍记录一下,好记性不如烂笔头嘛。

至于怎么注册 DigitalOcean 这里就不在详述了,从 SSH 登录开始吧。

SSH 登录

未免麻烦,最好是选择 SSH 登录,官方有详细的介绍: How To Use SSH Keys with DigitalOcean Droplets

这里要说一下,DigitalOcean 每次登录的时候都会告诉我密码过期,害得我重置了无数次密码。如果你也遇到这种问题,那么就先选择Conole Access, 然后在弹出的窗口控制台进行操作,修改 root 密码后再在本地操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 创建 SSH key
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+
1
cat ~/.ssh/id_rsa.pub

然后添加到 digitalocean 的 SSH Keys 里,Name 随便起

之后我们就可以链接服务器了

1
cat ~/.ssh/id_rsa.pub | ssh root@[your.ip.address.here] "cat >> ~/.ssh/authorized_keys"

然后,就可以直接登录了:

1
ssh root@[your.ip.address.here]

安装 Node

我选择的方式是源码安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// update system
$ sudo apt-get update
$ sudo apt-get install git-core curl build-essential openssl libssl-dev

// Clone node
$ cd /usr/local/src
$ git clone https://github.com/nodejs/node
$ cd node

// select checkout
$ git tag
$ git checkout v4.4.7

// install
$ ./configure
$ make
$ sudo make install

漫长的等待,然后就可以查询了$ node -v, 这会就会出现安装的 node version

安装 NPM

1
2
3
4
5
$ wget https://npmjs.org/install.sh --no-check-certificate
$ chmod 777 install.sh
$ ./install.sh
$ npm -v
3.10.5

安装 zsh(不是必要)

1
2
3
4
5
6
7
8
9
sudo apt-get zsh

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
// copy defult zshrc
cp ~/.zshrc ~/.zshrc.bak
// set oh-my-zsh to use
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
cash -s /bin/zsh
sudo shutdown -r now

安装 Ruby

安装 rbenv

1
2
3
4
5
6
7
8
9
10
11
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
# 用来编译安装 ruby
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# 用来管理 gemset, 可选, 因为有 bundler 也没什么必要
git clone git://github.com/jamis/rbenv-gemset.git ~/.rbenv/plugins/rbenv-gemset
# 通过 gem 命令安装完 gem 后无需手动输入 rbenv rehash 命令, 推荐
git clone git://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
# 通过 rbenv update 命令来更新 rbenv 以及所有插件, 推荐
git clone git://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update
# 使用 Ruby China 的镜像安装 Ruby, 国内用户推荐
git clone git://github.com/AndorChen/rbenv-china-mirror.git ~/.rbenv/plugins/rbenv-china-mirror
1
2
3
4
5
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

#
rbenv install 2.3.1

特么什么都能遇到,远端 locale 和本地不符,提示无法安装

1
sudo locale-gen en_US.UTF-8

// or

1
sudo dpkg-reconfigure locales
1
vim /etc/ssh/ssh_config

注释或删除AcceptEnv LANG LC_* (服务器 SSH 配置) 然后断开 SSH 重新登录,不行重启一下服务器,就好了。

1
sudo shutdown -r now

继续:

1
rebnv install 2.3.1

部署 Nginx

1
$ sudo apt-get install nginx

其实 Nginx 也不是必要装的,Node 自己可以跑服务!

1
nohup node app.js

但是如果要多域名的话,需要用到 Nginx 反代,额,这部分还不懂。再去研究下!

顺便,加一个删除 Nginx 的步骤:

1
2
3
4
5
6
7
sudo apt-get --purge remove nginx
sudo apt-get autoremove
dpkg --get-selections|grep nginx
// 罗列出与 nginx 相关的软件,
nginx-common deinstall
然后
sudo apt-get --purge remove nginx-common

Debian 上安装 Node 服务器

https://hivan.me/install-node-to-Debian/

作者

Hivan Du

发布于

2021-08-31

更新于

2024-01-16

许可协议

评论