前端搞后台,还要搞Linux生产环境代码部署,真是搞的一把眼屎一把泪,从来没学过Linux,折腾的从入门到入门就放弃,尴尬一逼,关于nginx端口转发可以浏览下一篇文章《傻逼式的linux centos安装并配置nginx1.7.4》
怎样算纯净的?就是标准的CentOS 7.5 64位这种,不是预装了一堆东西的,让我们一步步自己搭建,更清晰的了解整个步骤。
1 | ssh root@49.235.23.180 |
你需要在linux环境去执行这句代码,windows命令窗口不会鸟你的,当然,mac好处来了,你懂的,windows我们通常用第三方工具,比如:Xshell 6
1 2 3 | yum install nodejs node -v npm -v |
上面方式直接安装后版本可能比较旧
1 | npm install -g n |
1 | yum update openssl |
使用下面命令即可
1 | n stable |
使用node -v查看版本如果发现还是之前的老版本,使用下面命令使之立即生效
1 | source /etc/profile |
再次查看版本应该切换到新版本来了
1 | yum install git |
主要是让你方便拉取你代码库的代码,毕竟你也知道,在linux下传点东西似乎并不是很方便,那么git去拉代码库是个不错的选择,建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题。
1 | npm install --registry=https://registry.npm.taobao.org |
1 | wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.2.tgz |
1 2 3 | tar zxvf mongodb-linux-x86_64-rhel70-3.6.2.tgz //解压 mv mongodb-linux-x86_64-rhel70-3.6.2 mongodb //改解压后的文件夹名称为mongodb cd mongodb |
1 2 | cd bin vi mongodb.conf //新建mongodb启动配置文件 |
1 2 3 4 | dbpath=/www/wwwroot/koa/service/mongodb/db //数据文件存放目录,你上面刚创建的绝对路径地址 logpath=/www/wwwroot/koa/service/mongodb/logs //日志文件存放目录,你上面刚创建的绝对路径地址 port=27017 //默认端口,不要轻易改 fork=true //以守护程序的方式启用,即在后台运行,如果启动数据库port报错,就设置成false |
注意目录啊,让你复制只是参考格式,咱们的文件目录地址应该不同,这两个文件就是上面你创建的两个文件,当然,我这个是试验性的demo,其实mongodb不应该装在这么深目录下,一般是装在/usr/local/mongodb
这步修改文件夹内容可能就娃不会,我也不会,学嘛。打开终端,输入vi mongodb.conf回车,按a或i进入编辑模式,就可以去输入上面内容,然后按esc键退出编辑模式,接着输入:wq保存并退出,如果不想编辑进错了,可强制退出:shift+z+z
1 | ./mongod -f mongodb.conf |
注意,当你以守护程序的方式启用mongodb后,想暂停可以从bin目录下执行db.shutdownServer()指令去停止MongoDB实例
1 2 3 | node main.js 或 npm run dev |
pm2是一个带有负载均衡功能的Node应用的进程管理器,当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载,说人话就是让你的程序可以后台运行,否则当你关闭shell命令面板程序就挂了
1 | npm install -g pm2 |
1 | pm2 start index.js --name tank // tank是给这个进程取个名字,方便后续操作 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | $ npm install pm2 -g # 命令行安装 pm2 $ pm2 start app.js -i 4 # 后台运行pm2,启动4个app.js # 也可以把'max' 参数传递给 start # 正确的进程数目依赖于Cpu的核心数目 $ pm2 start app.js --name my-api # 命名进程 $ pm2 list # 显示所有进程状态 $ pm2 monit # 监视所有进程 $ pm2 logs # 显示所有进程日志 $ pm2 stop all # 停止所有进程 $ pm2 restart all # 重启所有进程 $ pm2 reload all # 0秒停机重载进程 (用于 NETWORKED 进程) $ pm2 stop 0 # 停止指定的进程 $ pm2 restart 0 # 重启指定的进程 $ pm2 startup # 产生 init 脚本 保持进程活着 $ pm2 web # 运行健壮的 computer API endpoint (http://localhost:9615) $ pm2 delete 0 # 杀死指定的进程 $ pm2 delete all # 杀死全部进程 运行进程的不同方式: $ pm2 start app.js -i max # 根据有效CPU数目启动最大进程数目 $ pm2 start app.js -i 3 # 启动3个进程 $ pm2 start app.js -x #用fork模式启动 app.js 而不是使用 cluster $ pm2 start app.js -x -- -a 23 # 用fork模式启动 app.js 并且传递参数 (-a 23) $ pm2 start app.js --name serverone # 启动一个进程并把它命名为 serverone $ pm2 stop serverone # 停止 serverone 进程 $ pm2 start app.json # 启动进程, 在 app.json里设置选项 $ pm2 start app.js -i max -- -a 23 #在--之后给 app.js 传递参数 $ pm2 start app.js -i max -e err.log -o out.log # 启动 并 生成一个配置文件 你也可以执行用其他语言编写的app ( fork 模式): $ pm2 start my-bash-script.sh -x --interpreter bash $ pm2 start my-python-script.py -x --interpreter python 0秒停机重载: 这项功能允许你重新载入代码而不用失去请求连接。 注意: 仅能用于web应用 运行于Node 0.11.x版本 运行于 cluster 模式(默认模式) $ pm2 reload all CoffeeScript: $ pm2 start my_app.coffee #这就是全部 PM2准备好为产品级服务了吗? 只需在你的服务器上测试 $ git clone https://github.com/Unitech/pm2.git $ cd pm2 $ npm install # 或者 npm install --dev ,如果devDependencies 没有安装 $ npm test |
1 | http://49.235.23.180:3000/ |
如果不行?别着急,大多服务器默认是没开启3000端口的,所以不可能访问,这时候我们需要手动去开放服务器端口3000,当前,我项目上面配置是监听3000,自己根据项目监听的端口调整。
有的人可能会去购买的服务器后台上面可视化编辑处去改,当然,既然一股脑的命令行,那就用命令行搞吧
1 2 3 4 5 | systemctl stop firewalld.service #停止 firewall systemctl disable firewalld.service #禁止 firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)。 |
1 | yum install iptables-services |
1 | vim /etc/sysconfig/iptables //修改这个文件 |
1 | -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT //修改好了:wq! #保存退出 |
到此你应该可以在前台去访问ip地址了,如果不行,把服务器重启下,重新启动下数据库和项目代码。
未知的东西都将让人有些畏惧,但你要想象下,既然很多人都会,那么说明这东西应该相对成熟,不会特别难,失败没关系,多百度下多尝试,有时候也是需要运气,运气好比如发现一个我这样傻逼式的帖子,傻逼式的教程,让傻逼的人不用动傻逼的脑子就能很简单的解决掉了问题,尴尬,我只是想说,多尝试,搞坏了没关系,学习嘛,大不了重装下系统再来,运气不好就是多花些时间有些让人崩溃烦躁。
上一篇:git仓库删除所有提交历史记录,清空历史提交记录信息
下一篇:傻逼式的腾讯云Linux-CentOS安装并配置Nginx教程
支付宝扫一扫打赏
微信扫一扫打赏
让傻逼的人不用动傻逼的脑子就能很简单的解决掉了问题,说的太秀了
越折腾越带劲
@奶爸建网站笔记随便搞搞而已