部署node项目官网到linux服务器

一、安装git ,将项目下载到linux

下面是可能的安装方法,不同类型的linux可能不一样

# apt-get install git
For Ubuntu, this PPA provides the latest stable upstream Git version

# add-apt-repository ppa:git-core/ppa # apt update; apt install git
Fedora
# yum install git (up to Fedora 21)
# dnf install git (Fedora 22 and later)
添加公钥到阿里云

在服务器上生成公钥/密钥(没有的情况下)
ssh-keygen -t rsa
默认生成到~/.ssh/文件夹下 id_rsaid_rsa.pub
id_rsa.pub的复制到阿里云项目的公钥添加

拉取代码

git clone [email protected]:companyWebsites/hainanhuixingFrontend.git

二、安装node, 因为项目的运行需要node环境

安装yum install npm
安装 yum install -y nodejs
查看版本 node -V
如果发现node的版本太低,则需要升级

更新node

安装n模块:
npm install -g n
可以使用下面几种方法安装node
升级node.js到最新稳定版
n stable
升级node.js到最新版
n latest
升级node.js到指定版本(推荐版本不要太高的,因为版本过高,有些依赖也要安装)
n v6.17.1

koa 要求 node版本要大于等于8.0.0

安装后,通过node -v查看版本,检验是否安装成功了。

有时候安装了也不生效,需要手动配置环境变量

vim ~/.bash_profile 编辑

export NODE_HOME=/usr/local/n/versions/node/8.17.0  //Node所在路径
export PATH=$NODE_HOME/bin:$PATH

修改完成后需要重新登陆才能生效,也可以执行命令 source /etc/profile 或者 source ~/.bash_profile 来生效

假如npm安装包的过程中出错,例如以下:


npm安装包出现错误

ssl验证问题,使用下面的命令取消ssl验证即可解决
npm config set strict-ssl false

然后继续之前的步骤,好不容易安装成功了,然后检查node版本
node -V发现以下问题

node查看版本出现异常情况

/usr/lib64/libstdc++.so.6这个文件的版本不够新

1.查看gcc版本中包含哪些库。

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

GLIBCXX_3.4 GLIBCXX_3.4.1 
GLIBCXX_3.4.2 GLIBCXX_3.4.3 
GLIBCXX_3.4.4 GLIBCXX_3.4.5 
GLIBCXX_3.4.6 GLIBCXX_3.4.7 
GLIBCXX_3.4.8 GLIBCXX_3.4.9 
GLIBCXX_3.4.10 GLIBCXX_3.4.11 
GLIBCXX_3.4.12 GLIBCXX_3.4.13 
GLIBC_2.2.5 GLIBC_2.3 GLIBC_2.4 
GLIBC_2.3.2 GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

可以看出不包含GLIBCXX_3.4.14

2.从网上下载高版本的libstdc++.so.6.0.13以上的版本,比如libstdc++.so.6.0.17。

3.把libstdc++.so.6.0.17拷贝到/usr/lib64目录下。

cp libstdc++.so.6.0.17 /usr/lib64/

4.删除libstdc++.so.6符号连接。

rm libstdc++.so.6

5.新建里符号连接。

ln -s libstdc++.so.6.0.17 libstdc++.so.6

6.再次查看就没有问题了。

三、安装nginx

安装所需环境

一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++

二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel

三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel

四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel

官网下载

下载 tar安装包 https://nginx.org/en/download.html

wget https://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
配置

使用默认配置 默认会安装到 /usr/local/nginx 目录下面的

./configure

等价于

./configure --prefix=/usr/local/nginx
编译安装
make 
make install

nginx 重启,假如没有配置service nginx reload
可以到,nginx目录下面的sbin,执行nginx -s reload命令
加入报以下问题

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

可以执行以下命令,就可以了

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

四、安装mongodb,因为api接口项目是需要用到mongodb的

下载软件

mongodb软件下载网址,https://www.mongodb.org/dl/linux/x86_64-rhel62,里面有各个版本的下载链接

cd  /data/software/
wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.8.tgz
解压程序
tar xf mongodb-linux-x86_64-rhel62-3.2.8.tgz 

主要的程序在mongodb-linux-x86_64-rhel62-3.2.8/bin目录下
可以将bin目录的文件移到想要的目录下,但是如果不需要的话,可以忽略的

cd mongodb-linux-x86_64-rhel62-3.2.8/bin/ 
cp * /mongodb/bin
添加环境变量到/etc/profile
vim /etc/profile
###
...
export PATH=$PATH:/data/software/mongodb-linux-x86_64-rhel62-3.2.8/bin

修改保存后,运行命令source /etc/profile使修改生效。

source /etc/profile
管理mongodb

假设我们的数据是在/data/mongodb目录下

cd /data/mongodb
## 数据目录 data
mkdir data
## 记录目录 log
mkdir log

启动:mongod --dbpath=/data/mongodb/data --logpath=/data/mongodb/log/mongodb.log --port=27017 --logappend --fork
关闭:mongod --shutdown --dbpath=/data/mongodb/data --logpath=/data/mongodb/log/mongodb.log --port=27017 --logappend --fork

参考链接:
Linux平台安装MongoDB
linux Mongodb部署

五、用npm安装pm2

pm2 是node应用进程管理器,可以让node服务在后台运行,即便关闭了服务器连接,十分好用。

六、配置nginx

找到nginx/conf/nginx.conf
增加反向代理配置:

    server {
          listen 80;
          server_name www.xxx.com;
          location / {
                proxy_pass http://127.0.0.1:7729;
          }
     }

这样www.xxx.com就可以访问到http://127.0.0.1:7729的页面
假如想通过引入外部文件的形式,可以在http下,配置include

http {
  ...
  ...
  include vhost/*.conf
}

再在nginx/vhost/目录下增加对应的xxx.conf文件如,www.xxx.com.conf
里面的内容和前面是一样的

       server {
          listen 80;
          server_name www.xxx.com;
          location / {
                proxy_pass http://127.0.0.1:7729;
          }
       }

你可能感兴趣的:(部署node项目官网到linux服务器)