Vue.js项目部署到服务器的详细步骤


Posted in Javascript onJuly 17, 2017

前言

最近做完了一个项目,Vue.js 2.0 + vuex + axios,还是有点大的。想着做了这么久,放服务器给朋友们体验一下,帮忙找找BUG,于是就有了研究服务器这一篇文章了。

准备工作

服务器

既然是部署到服务器,肯定是需要一个云的。我这里找基友拿的一个,做测试的话,可以买阿里云的学生机,9.9 一个月,不过不是学生的话就比较麻烦,因为涉及敏感操作都需要验证码。

编译打包

将项目打包成 dist 文件,这里我需要跨域请求一些数据,还写了一个小型服务器, app.js 放到 dist 文件夹 同级目录。

Xshell

因为基友的是 centos 的服务器,所以用 xshell 的话稍微好操作一点,我是 win10。

WinSCP

接触命令行并不多,所以面对命令行编程我还是有点效率不高。这个软件就方便了文件的上传,编辑等等,图形化界面。

正式开始

有了上面几项之后,可以正式开始部署工作了。

登录 WinSCP,连接远程服务器

打开 WinSCP,会出现如下界面

Vue.js项目部署到服务器的详细步骤

主机名,输入你的服务器公网 ip,端口号不变,用户名一般是 root,密码则是你购买服务器时设置的密码,点击登录。

Vue.js项目部署到服务器的详细步骤

默认是 /root 界面。

这时候把你打包好的文件,扔到某一个目录下,如 /opt,dist 和 app.js 在同一目录

登录 Xshell 连接远程服务器

打开 Xshell,第一次登录会有如下界面:

Vue.js项目部署到服务器的详细步骤

名称可以随便取一个,协议选择 SSH,主机就是你的公网 ip,

之后会有这个页面

Vue.js项目部署到服务器的详细步骤

这里我是创建好了的,点击就可以直接连接。如果你是从上一步过来的,点击之后会要输入密码

Vue.js项目部署到服务器的详细步骤

之后就连接到远程 Linux 系统了。

Vue.js项目部署到服务器的详细步骤

安装 node.js

由于我的项目是需要跨域请求数据,所以这里我选择的是用 Node.js 启动小型服务器,请求数据。

  1. 下载源码
  2. 解压源码
  3. 编译安装

下载源码,这里以最新的 6.11.1 为例:

cd /usr/local/src/
wget http://nodejs.org/dist/v6.11.1/node-v6.11.1.tar.gz

解压源码:

cd /usr/local/src/
tar zxvf node-v6.11.1.tar.gz

编译安装:

cd node-v6.11.1
./configure --prefix=/usr/local/node/6.11.1
make
make install

这里 make 过程大约30分钟,可以去做别的。

ps:这里我遇到服务器没有安装 g++ 的问题,那直接

yum install gcc-c++

就可以了。

安装完成后,还需要对 node 进行环境变量的配置

这里通过 WinSCP 找到 /etc/profile,右键该文件,编辑。

在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 上面一行添加如下代码:

#set for nodejs
export NODE_HOME=/usr/local/node/6.11.1
export PATH=$NODE_HOME/bin:$PATH

ctrl + s 保存退出,然后编译一下

source /etc/profile

然后 node -v 检验是否安装成功

之后再安装守护进程,并设置开机自启。保证我们自己写的小型服务器能脱离 Xshell 在服务器上运行

全局安装:

npm install pm2 -g

进入 /opt (这里是你放 dist 的和 app.js 的目录),执行命令:

pm2 start app.js --watch
pm2 save
pm2 startup

如果在服务器端没有防火墙墙掉端口的情况下,我们应该可以愉快的看到自己的项目了。

但是,服务器端有防火墙墙掉了端口怎么办。

vps,安装 iptables:

yum install -y iptables-service

粗暴的关闭防火墙(不推荐):

systemctl stop firewalld.service
systemctl disable firewalld.service
yum install -y iptables-service // 如果上面安装过了就不用了
iptables -F
iptables -X
iptables -Z
iptables-save
systemctl restart iptables.service

单独开启某一个端口(推荐):

查看状态:

iptables -L -n

下面添加对特定端口开放的方法:

使用iptables开放如下端口

/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT

保存

/etc/rc.d/init.d/iptables save

重启服务

service iptables restart

查看需要打开的端口是否生效

/etc/init.d/iptables status

方法2:

或直接编辑/etc/sysconfig/iptables

-A INPUT -p tcp -m tcp --dport 4000 -j ACCEPT

保存在前面部分

再重启:

service iptables restart

如果是阿里云,就在安全组规则里添加相应的规则即可。

总结

以上所述是小编给大家介绍的Vue.js项目部署到服务器的详细步骤,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
JavaScript入门教程(12) js对象化编程
Jan 31 Javascript
jquery 图片截取工具jquery.imagecropper.js
Apr 09 Javascript
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
Webpack框架核心概念(知识点整理)
Dec 22 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 Javascript
js中的面向对象之对象常见创建方法详解
Dec 16 Javascript
HTML+JS实现在线朗读器
Feb 15 Javascript
vue使用refs获取嵌套组件中的值过程
Mar 31 Vue.js
js图片放大镜实例讲解(必看篇)
Jul 17 #Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
Jul 17 #Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 #Javascript
node.js express中app.param的用法详解
Jul 16 #Javascript
Node.js中流(stream)的使用方法示例
Jul 16 #Javascript
js+html5实现半透明遮罩层弹框效果
Aug 24 #Javascript
Vue Spa切换页面时更改标题的实例代码
Jul 15 #Javascript
You might like
php 正则匹配函数体
2009/08/25 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
php实现zip文件解压操作
2015/11/03 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
Python标准库笔记struct模块的使用
2018/02/22 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
大学毕业生求职自荐信
2014/02/20 职场文书
预备党员表决心书
2014/03/11 职场文书
《观舞记》教学反思
2014/04/16 职场文书
临床护理求职信
2014/04/26 职场文书
小学生倡议书范文
2014/05/13 职场文书
环保倡议书400字
2014/05/15 职场文书
团队口号大全
2014/06/06 职场文书
四查四看整改措施
2014/09/19 职场文书
CAD实训总结范文
2015/08/03 职场文书
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS