前言: 作为一名前端开发人员,对服务器的部署运维一直感觉很陌生,但是却兴趣盎然,所以就自己购买了一台阿里服务器来学习。接触到其实很多人在部署服务的过程中也都会或多或少的遇到很多问题(老司机除外),所以就打算把自己在部署服务器的过程中遇到的问题以及解决的过程记录下来,一来做个记录,二来可以抛砖引玉,再来大家可以一起学习。该系列文章将会从最基本的 node 、mongo 环境安装讲起,逐步深入,最终通过 docker 实现服务的自动构建和部署。 本篇作为系列文章的首篇,主要介绍 node、mongo 及 nginx 的安装。注:笔者的服务器为 CentOS 7.3 64位 系统,所以对于其他系统不做讲解,毕竟没有躬身,以免误导大家。
一、安装 node
我的个人项目后端部分均基于 node 开发, 所以服务器安装 node 就无可避免了。其实 node 的安装非常简单便捷,根据官方文档,在 Centos 系统安装 node 只需要三步。
- 设置repository源:
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 -
2、安装 nodejs
sudo yum -y install nodejs
3、安装构建工具(可选) 要从 npm 编译和安装本地插件,你还需要安装构建工具:
sudo yum install gcc-c++ make
此处遇到的问题: 我在安装的过程中先配置了 nodejs 6 的 repository源:
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
后来在配置 nodejs 8 , 却一直安装 nodejs 6. 后来找到解决方案,需要先清除 repository源,然后重新配置:
//如果设置多个源,默认会一直按照第一源安装,所以需要运行以下命令清除源,
sudo rm -fv /etc/yum.repos.d/nodesource*
重新设置:
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install nodejs
附上node官方安装文档: Installing Node.js via package manager
二、安装 mongo
mongo 官方的安装文档其实也是非常友好,按照文档步骤一步一步进行即可,服务启动过程中可能会遇到坑,下文将会介绍:
- 配置包管理系统(yum)
安装最新版 MongoDB 3.6 , 创建一个 mongo 的包管理文件
/etc/yum.repos.d/mongodb-org-3.6.repo
,然后在文件中写入以下配置:
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
如果要安装 3.4 版本,就 创建一个 3.4 的管理文件 /etc/yum.repos.d/mongodb-org-3.4.repo
,然后写入:
[mongodb-org-3.4]
name=MongoDB 3.4 Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1
2、安装 MongoDB 包
sudo yum install -y mongodb-org
3、启动 MongoDB 服务
sudo service mongod start
简单 3 步即可完成 mongo 的安装和服务的启动 4、停止 MongoDB 服务
sudo service mongod stop
5、重启 MongoDB 服务
sudo service mongod restart
/var/log/mongodb/mongod.log
文件为 MongoDB 默认的log文件,可以查看服务启动过程中的所有日志。
6、使用 MongoDB
···
mongo --host 127.0.0.1:27017
···
通过该命令即可在主机上运行一个 mongo shell
mongo 默认是没有权限验证的,也就是说任何人都可以轻易的连接你服务器上的 mongo 并对数据进行操作。
所以需要修改 Mongo 的配置文件,打开权限验证,增加数据库权限,也可以修改 绑定的主机ip、 端口号(默认为:27017)。配置文件修改如下:
//设置日志文件
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
//设置数据存储目录
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
//设置服务以后台进行的模式运行
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
//设置网络连接
net:
port: 27017 #默认端口,可以进行修改,例如 28018
bindIp: 127.0.0.1 # 设置绑定ip,只绑定本机
security:
authorization: enabled # 开启权限验证,设置完成需要重启 mongo 服务
关于如何设置 数据库权限可以参考我的博客文章:mongodb数据库增加管理用户权限 在 mongo 服务启动的过程中如果遇到错误:
Starting mongod (via systemctl): Job for mongod.service failed because the control process exited with error code.
See "systemctl status mongod.service" and "journalctl -xe" for details.
[FAILED]
可以参考我的博客文章:Mongo 服务启动踩坑记
安装 nginx
我之前的服务部署时是使用的 http-proxy
配置的服务代理转发,后来转用了nginx,主要是学习了解一下基本的nginx配置,nginx 的安装也很简单方便:
1、增加nginx源:
sudo yum install epel-release
2、安装 nginx
sudo yum install nginx
3、启动nginx
sudo systemctl start nginx
现在可以访问 http://your_ip
来判断你服务器上的nginx是否启动成功,如果看到:
恭喜你,现在你的 整套环境配置就已经完成了。
整体来看,在 Centos 上安装 node、mongo、nginx 都是很简单的,
无非就是 1、打开冰箱 2、把大象放进去 3、关上冰箱。 ~
参考文献: Installing Node.js via package manager Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux How To Install Nginx on CentOS 7
文章来自我的个人博客: https://www.yvanwang.com/post/5a5c66924b22480021d85214
使用 nvm 管理切换多版本node 使用 nrm 管理切换 repository,
@nnliang 我只是要安装最新版,不做版本切换 ;)
@yvanwangl 。。。。过几天就不是最新版了
@nnliang 是啊 。。
想问下楼主买的是云服务器还是虚拟主机
无论对于人还是搜索引擎,你这个文章的标题没有达意,容易被误解为”CentOS的安装与部署“。“CentOS环境下,XX的安装与部署“会好些,这里XX其实是关键词,你标题里却没有。
@stanlogin 说的对喔
@jer0701 买的阿里云服务器