热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

把nodejs项目部署到阿里云

前言最近工作不是很忙,在空闲时间学习用nodeexpress搭建自己的个人博客。目前进度大概进行到一半了,等不及想部署上线看下效果(学习

前言

最近工作不是很忙,在空闲时间学习用node+express搭建自己的个人博客。目前进度大概进行到一半了,等不及想部署上线看下效果(学习阶段的人总是很兴奋,有一点点小成果就想马上看看 O(∩_∩)O))。于是买了个阿里云服务器,自己尝试来部署一下,捣鼓了两天终于捣鼓好了,这里来记录一下,以免后面又忘了。


参考:

阿里云帮助文档: 部署Node.js项目(CentOS)
推酷文章
简书文章
segmentfault文章
pm2使用方法


一、买服务器

比较穷,选了最低配的。30/月,1核,1G内存,1M带宽,操作系统:CentOS 7.2 64位。作为一个从来没有解除过阿里云的菜鸟,这两天真是踩了无数坑,不过也学到了很多东西。


二、开始捣鼓,来看看怎么部署。

网上的教程很多,但还是想自己来写一下,这样自己好理解,也能加深记忆。首先远程链接,阿里云的远程连接功能不会用,输入用户名后然后输入登录密码,总是输入不完就跳了,不知道咋回事。因为服务器系统是Linux的,我电脑是windows 7的系统。如果服务器是windows server的系统可以使用电脑的远程桌面连接,这里就不细说了,不会的上网搜一下就行了。windows远程连接Linux网上说有两种常用的远程连接工具:Putty和Xshell,我选择的是Xshell。


1、远程连接服务器

下载Xshell 并安装,打开软件你会看到会话框:

打开Xshell连接软件

点击新建并设置和填写如下信息:

设置Xshell连接

填好后先不要点确定,点击左侧树状图中“用户身份验证”,填写信息:

设置Xshell连接

然后点击确定后,就会像上面第一张图显示的,然后点击连接,连接成功如图显示:

链接成功


2、安装Node.js

按照阿里云帮助文档: 部署Node.js项目(CentOS) 教程中步骤2操作(linux系统指令大全);


(1)、wget命令下载Node.js安装包。

该安装包是编译好的文件,解压之后,在bin文件夹中就已存在node和npm,无需重复编译。

wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz

(2)、解压文件。

tar xvf node-v6.9.5-linux-x64.tar.xz

(3)、软件默认安装在/root/node-v6.9.5-linux-x64/目录下。如果需要将该软件安装到其他目录(如:/opt/node/)下,请进行如下操作:

mkdir -p /opt/node/
mv /root/node-v6.9.5-linux-x64/* /opt/node/
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
ln -s /opt/node/bin/node /usr/local/bin/node
ln -s /opt/node/bin/npm /usr/local/bin/npm

(4)、查看node.js和npm版本:

node -v
npm -v

完成以上步骤node.js就算安装成功了


3、安装mongodb

参考 简书文章:


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



(1)、进入 /usr/local/:

cd /usr/local


(2)、安装mongodb:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.5.tgz

其他版本链接可以去官网查看
mongodb版本选择


(3)、解压安装包,并重命名文件夹为mongodb

tar zxvf mongodb-linux-x86_64-3.4.5.tgz
mv mongodb-linux-x86_64-3.4.5 mongodb

(4)、创建数据和日志存放目录

mkdir /var/mongodb
mkdir /var/mongodb/data
mkdir /var/mongodb/logs

(5)、设置开机启动项

打开rc.local文件,添加CentOS开机启动项:
不熟悉linux命令的可以参考:linux系统指令大全

vim /etc/rc.d/rc.local

打开文件后输入‘i’启用编辑。将mongodb启动命令追加到本文件中,让mongodb开机自启动:

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

设置开机启动项

Esc 退出编辑,输入 :wq (冒号wq),回车保存并关闭文件。

保存并关闭文件


(6)、手动启动mongodb

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

数据库安装和启动已完成,下面安装pm2


4、安装pm2


(1)、通过npm全局安装:

npm install pm2 -g

这个时候使用 pm2 -v 查看版本可能会报错,需要设置一下环境变量


(2)、设置环境变量

使用 vim 命令打开文件 /etc/profile

vim /etc/profile

同样,按‘i’启动编辑,将pm2的路径添加到环境变量中;

pm2路径

PATH=$PATH:/opt/node/lib/node_modules/pm2/bin

添加环境变量

保存退出之后输入:source /etc/profile 可以让变量生效。


5、上传项目

上传项目使用的是Xftp


(1)、下载

下载Xftp


(2)、连接服务器

如果已经安装,可以点击Xshell中‘新建文件传输’,直接链接到服务器(前提是Xshell已连接);
手动配置连接和Xshell差不多:

配置Xftp链接


(3)、上传项目目录

参考
我把代码上传到了/home目录文件夹下。

这里写图片描述


6、启动项目


(1)、使用pm2启动项目

控制台进入存放代码的目录,和本地操作类似,本地使用node /bin/www 启动项目,这里换成pm2 start /bin/www ;
项目启动成功后就可以使用 IP:端口 号访问了。IP是你服务器的公网IP,端口号是你代码中设置的监听端口。


2018-04-28
更新:这里有个坑忘了说,因为当时上传项目的时候直接把项目文件拖过去的,所以依赖模块都包含在内了(node_modules 文件),所以上传很慢,建议去掉这个文件夹保留package.json文件上传后命令行进去项目根目录使用npm install安装依赖。



三、结束

至此,部署过程全部结束,我也是小白,从来没碰过linux,实际操作中也遇到了各种问题。但是多尝试,多搜索,细心一点一般都能部署成功。写个博客记录一下部署过程,好记性不如烂笔头,以后忘记了查一下博客很快就能弄明白。也希望能够帮助其他刚接触linux部署的小伙伴。这个博客也不算是原创,算是整理其他博友的教程,各位可以随意转载。


推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 解决U盘安装系统后无法重启的问题
    本文详细探讨了运维新手常遇到的U盘安装系统后无法正常重启的问题,提供了从问题分析到具体解决方案的完整步骤。通过理解Boot Loader的工作原理和正确配置启动项,帮助用户顺利解决问题。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 选择适合生产环境的Docker存储驱动
    本文旨在探讨如何在生产环境中选择合适的Docker存储驱动,并详细介绍不同Linux发行版下的配置方法。通过参考官方文档和兼容性矩阵,提供实用的操作指南。 ... [详细]
author-avatar
七月de七月小
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有