阿里云服务器项目部署

最近在搞一个微信小项目,开发代码已经弄好,也顺利部署到阿里云服务器上,其中遇到了一些坑,特此记录下部署的流程和遇到的坑。

我购买阿里云时服务器的操作系统选的是ubuntu,纯命令行输入感觉还是很6的,感觉自己充满了黑客气质!

环境介绍

本地操作系统windows 7 ,使用putty进行远程ssh连接

阿里云服务器ECS操作系统 ubuntu 14.04

服务器配置

使用putty连接到远程服务器时起始只有root用户,管理员权限,使用root登录。

新建普通用户 :adduser iyoyo

代理权限 : gpasswd -a iyoyo sudo

打开sudo配置文件 sudo visudo  添加 iyoyo ALL(ALL:ALL)ALL

修改sshd_config文件(vi /etc/ssh/sshd_config)配置项不让root登录  permitrootlogin 设置为 no

重启ssh  sudo service ssh restart

安装程序

Sudo apt-get update

Sudo apt-get install vim openssl build-essential libssl-dev wget curl git

安装nvm:

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash

使用nvm安装node:

nvm install v6.9.5

nvm use v6.9.5

nvm alias default v6.9.5

安装npm使用国内淘宝源:

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

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

使用npm安装pm2 webpack等:

npm i pm2 webpack gulp grunt-cli -g

安装nginx

sudo apt-get install nginx

进入到/etc/nginx/conf.d文件夹添加conf文件:

sudo vi (your).conf 在文件中添加配置项

重新载入nginx配置sudo nginx -s reload

安装mongodb

官网上步骤比较明晰 https://docs.mongodb.com/v3.0/tutorial/install-mongodb-on-ubuntu/

代码部署配置

代码部署的方式主要是本地代码提交到码云私有仓库,服务器用git从码云私有仓库获取。前提是本地和服务器都要生成ssh公私钥,并将公钥添加到码云ssh密钥认证列表里。服务器代码的获取与项目启动都是使用pm2进行自动化操作。

首先本地修改完代码执行本地操作 : 

 git add . 

git commit -m "description"

git push orgin master

代码提交到私有仓库后使用本地pm2根据项目根目录ecosystem.json文件远程控制服务器pm2自动执行:

pm2 deploy ecosystem.json production setup

pm2 deploy ecosystem.json production

遇到的坑

我电脑上执行pm2 deploy ecosystem.json production时总是失败,提示cant open .git/FETCH_HEAD文件,刚开始一直觉得是服务端用户权限问题,但是查看iyoyo用户对.git文件夹的权限是-rwxrwxrwx是有权限的,一直找不到原因,网上搜了很长时间也搜不出答案,纠结花费了半天时间。可能是我刚开始使用root用户进行的pm2执行操作后来又变成iyoyo导致权限混乱,最后我把服务端的项目文件夹下的文件全部删除。重新进行 pm2 deploy ecosystem.json production setup,pm2 deploy ecosystem.json production这两步操作,最终可以了。

因为我的是windows电脑,直接使用cmd打开的命令行执行pm2命令时一直执行不了,后来看官网常见问题介绍找到解决办法,使用git bash命令行工具运行pm2相关命令就ok了

参考文章:

aliyun部署:  https://zhuanlan.zhihu.com/p/20940096,

pm2官网: http://pm2.keymetrics.io/docs/usage/deployment/

你可能感兴趣的:(阿里云服务器项目部署)