腾讯云极速配置NodeJS+LNMP运行环境

版权声明:本文由吴逸翔 原创文章,转载请注明出处: 
文章原文连接:https://www.qcloud.com/community/article/848754001487150669php

来源:腾云阁 https://www.qcloud.com/communitynode

 

需求: 以前使用 PHP+Mysql 作开发,近年来NodeJS有点火,且不须要ApacheNginxTomcat作容器,想在不影响以前PHP开发环境下,也能体验NodeJS+Mysql玩法。国内搜索了不少也没有发现有关LNMP+Nodejs的具体部署教程,因而踩了不少坑,终于配出了NodeJS+LNMP+PHPMyAdminmysql

1、购买服务器

1.选择服务器配置

由于NodeJS异步、非阻塞的特性,因此多核CPU对NodeJS算比较浪费吧,因此主要提升内存的大小,因此选了腾讯云1核、2G 内存的服务器。nginx

2.选择镜像

这个比较重要,镜像要是选得好,配置起来各类高效率。这里我推荐的系统是CentOS 7+ (主要是由于CentOS 6使用的是Python 2.6,yum各类坑,想升级成Python 2.7坑还多)。c++

镜像选择 PHP运行环境(CentOS7.1 64位 Nginx | PHP多版本),腾讯云里的服务提供商上海微柳这家提供的oneinstack 太强大了,工具和文档都很详细,而且和其它的镜像不同的是,ssh链接时,会有暗红高亮,至关好用。而后直接买、买、买就好了(较其它主机提供商,腾讯云的学生机至关给力)。git

而后就配好了,访问服务器80端口,下载镜像的文档(超级方便的各类脚本):github

2、基本配置

注意:有些服务器须要在腾讯云的控制台上设置安全组,否则22端口将没法开放,就会致使才买的服务器经过ssh连不上。sql

首先开启FTP,方便传文件:mongodb

1.开启FTP服务器

service pureftpd start开启,这样就能够配置FTP了。 首先进入oneinstack目录 -> 运行./pureftpd_vhost.sh -> 添加一个FTP用户数据库

2.更改Mysql密码

oneinstack目录下,运行 ./reset_db_root_password.sh,输入数据库密码。

3、配置NodeJS

1.yum更新

执行:yum -y install zlib-devel curl-devel openssl-devel perl cpio expat-devel gettext-devel openssl zlib autoconf tk perl-ExtUtils-MakeMaker gcc make gcc-c++ openssl-devel wget ,主要的目的是为了当npm安装比较"娇气"的模块时不报错。

2.安装NodeJS

这里采用nvm来安装nodejs,是由于nvmnodejs进行版本管理,这就方便多了,好比我Ghost博客的Node版本只能是0.10.x || 0.12.0。而通常用的,是4.x.x了。因此很是有必要。

  1. 首先git clone https://github.com/creationix/nvm.git ~/.nvm
  2. source ~/.nvm/nvm.sh
  3. 将2中的命令vim加到~/.bashrc或 ~/.profile或 ~/.zshrc中,这样的话,下次ssh上去时,才不会发现nvm未安装。
  4. 而后就是nvm的使用了,nvm install node版本。参考nvm的Usage

安装完 node 后,最好更换一下npm源,这样 npm 比较快些

npm config set registry https://registry.npm.taobao.org // 配置后可经过下面方式来验证是否成功 npm config get registry // 或 npm info express 

3.安装forever模块,永久运行node

npm install -g forever

4、配置Ngnix

1.虚拟主机的配置

新建后,会在产生2个重要文件(以个人域名test.ycjcl.cc为例)

虚拟主机的配置文件(到时候运行nodejs时,须要更改为反向代理):             /usr/local/nginx/conf/vhost/test.ycjcl.cc.conf 项目目录(node项目,能够经过ftp传上去): /data/wwwroot/test.ycjcl.cc 

2.防火墙设置

这里我生成了一个express项目,端口为3000,可是并不能访问到3000端口

须要防火墙忽略3000端口,因此执行如下命令:

iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT #容许 3000 端口 service iptables save #保存 iptables 规则 

就能够ip+端口访问了:

3.将node服务和域名进行绑定

直接vi /usr/local/nginx/conf/vhost/test.ycjcl.cc.conf,修改配置:(中间的location都删了,直接加这个)

location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Connection ""; proxy_http_version 1.1; proxy_pass http://127.0.0.1:3000; } 

而后重启nginx ,service nginx restart

而后用域名访问成功,!!!

须要 phpMyAdmin,直接用 ip/phpMyAdmin,能够进行mysql的管理。

5、安装Mongodb(可选)

1.首先将mongodb源添加到yum中。vim /etc/yum.repos.d/mongodb.repo编辑添加如下内容:

若是是64位CentOS 7系统

[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1 

若是是32位系统

[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1 
2.先更新yum:yum -y update,而后安装mongodb:yum -y install mongodb-org mongodb-org-server
3.运行mongodb(默认27017端口)

systemctl {start|status|stop} mongod

注意:从MongoDB“赎金事件”中,建议必定要使用db.addUserdb.changeUserPassword更改用户名和密码。

6、常见问题

若是重装系统,ssh上去时,出现如下错误,用ssh-keygen -R IP地址 来解决

有时候开启node服务时,提示某个端口被占用。此时要用命令查看端口fuser -n tcp 端口号,或查看服务ps -ef | grep 服务名,kill掉kill -9 pID进程号。若是大型访问量时,优雅软重启的使用kill -HUP pID进程号

相关文章
相关标签/搜索