腾讯云极速配置NodeJS+LNMP运行环境
版权声明:本文由吴逸翔原创文章,转载请注明出处:
文章原文链接:https://www.qcloud.com/community/article/848754001487150669
来源:腾云阁 https://www.qcloud.com/community
需求: 之前使用
PHP+Mysql
做开发,近年来NodeJS
有点火,且不需要Apache
、Nginx
、Tomcat
做容器,想在不影响之前PHP
开发环境下,也能体验NodeJS+Mysql
玩法。国内搜索了很多也没有发现有关LNMP+Nodejs
的具体部署教程,于是踩了很多坑,终于配出了NodeJS+LNMP+PHPMyAdmin
一、购买服务器
1.选择服务器配置
因为NodeJS异步、非阻塞的特性,所以多核CPU对NodeJS算比较浪费吧,所以主要提高内存的大小,所以选了腾讯云1核、2G 内存的服务器。
2.选择镜像
这个比较重要,镜像要是选得好,配置起来各种高效率。这里我推荐的系统是CentOS 7+ (主要是因为CentOS 6使用的是Python 2.6,yum各种坑,想升级成Python 2.7坑还多)。
镜像选择 PHP运行环境(CentOS7.1 64位 Nginx | PHP多版本),腾讯云里的服务提供商上海微柳这家提供的oneinstack
太强大了,工具和文档都很详细,并且和其它的镜像不一样的是,ssh
连接时,会有暗红高亮,相当好用。然后直接买、买、买就行了(较其它主机提供商,腾讯云的学生机相当给力)。
然后就配好了,访问服务器80端口,下载镜像的文档(超级方便的各种脚本):
二、基本配置
注意:有些服务器需要在腾讯云的控制台上设置安全组,不然22端口将无法开放,就会导致才买的服务器通过
ssh
连不上。
首先开启FTP,方便传文件:
1.开启FTP服务器
service pureftpd start
开启,这样就可以配置FTP了。 首先进入oneinstack
目录 -> 运行./pureftpd_vhost.sh
-> 添加一个FTP用户
2.更改Mysql密码
oneinstack
目录下,运行 ./reset_db_root_password.sh
,输入数据库密码。
三、配置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
,是因为nvm
对nodejs
进行版本管理,这就方便多了,比如我Ghost
博客的Node
版本只能是0.10.x || 0.12.0
。而一般用的,是4.x.x
了。所以非常有必要。
- 首先
git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
- 将2中的命令vim加到
~/.bashrc或 ~/.profile或 ~/.zshrc
中,这样的话,下次ssh上去时,才不会发现nvm
未安装。 - 然后就是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
四、配置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的管理。
五、安装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.addUser
和db.changeUserPassword
更改用户名和密码。
六、常见问题
如果重装系统,ssh上去时,出现以下错误,用
ssh-keygen -R IP地址
来解决
有时候开启node服务时,提示某个端口被占用。此时要用命令查看端口
fuser -n tcp 端口号
,或查看服务ps -ef | grep 服务名
,kill掉kill -9 pID进程号
。如果大型访问量时,优雅软重启的使用kill -HUP pID进程号
。
腾讯云极速配置NodeJS+LNMP运行环境的更多相关文章
- 腾讯云从零搭建PHP运行环境
一.首先我们得注册腾讯云,租用一台服务器,我选择的是CentOS 7.2 64位,这时候会给你这台主机的公网IP和内网IP,以及这台主机的用户名及密码. 二.我们可以使用腾讯云网页上自带的登录按钮进行 ...
- 腾讯云短信 nodejs 接入, 通过验证码修改手机示例
腾讯云短信 nodejs 接入, 通过验证码修改手机示例 参考:腾讯云短信文档国内短信快速入门qcloudsms Node.js SDK文档中心>短信>错误码 nodejs sdk 使用示 ...
- 二、Uniapp+vue+腾讯IM+腾讯音视频开发仿微信的IM聊天APP,支持各类消息收发,音视频通话,附vue实现源码(已开源)-腾讯云后台配置TXIM
项目文章索引 1.项目引言 2.腾讯云后台配置TXIM 3.配置项目并实现IM登录 4.会话好友列表的实现 5.聊天输入框的实现 6.聊天界面容器的实现 7.聊天消息项的实现 8.聊天输入框扩展面板的 ...
- 配置perl-cgi的运行环境,由于Active Perl安装在d:\perl
Apache 1.3.22 for Win32+PHP 4.0.6+Active Perl 5.006001+Zend Optimizer v1.1.0+mod_gzip 1.3.19.1a+MySQ ...
- vsCode怎么为一个前端项目配置ts的运行环境
vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...
- 阿里云服务器ubuntu安装java运行环境
服务器 阿里云服务器ubuntu安装java运行环境 转:http://www.codingyun.com/article/45.html 今天来给大家介绍一下在阿里云ubuntu服务器下安装java ...
- VScode配置CMD本地运行环境(2.0)
VScode配置CMD本地运行环境(2.0) 官方Task.json说明 完整的Task.json配置信息 Task.json预定义变量 看了很多网上的教程都说需要下载VScode的python插件, ...
- 腾讯云下安装 nodejs + 实现 Nginx 反向代理
本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理. 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑 ...
- 阿里云域名+ 腾讯云服务器 配置nginx
1,实现目标,通过外网访问域名,能够通过nginx 实现反向代理,以及负载均衡 2,准备工具 阿里云注册的域名: aiyuesheng.com 腾讯云领取的云服务器:centos 7 xshell 6 ...
随机推荐
- 总结·展望
学了算法也有半年了.也是学期末,确实是该总结了.半年来说不上多努力,毕竟不如高中那时候早晨5点起晚上12点睡,但也确实学到不少东西(尽管眼下来说根本用不到并且我也不确定以为会不会去用.毕竟专业放在那里 ...
- JSON序列——根据JSON生成事务性SQL
JSON序列——根据JSON生成事务性SQL procedure TForm1.Button5Click(Sender: TObject); begin var json: string :='' + ...
- Markdown 语法手册 - 完整版(下)
6. 引用 语法说明: 引用需要在被引用的文本前加上>符号. 代码: > 这是一个有两段文字的引用, > 无意义的占行文字1. > 无意义的占行文字2. > > 无 ...
- 微软BI 之SSIS 系列 - 平面文件格式的区别(Delimited,Fixed width,Ragged Right, Fixed width ...)
开篇介绍 SSIS 中处理文件,一般在描述输出平面文件格式的时候通常会出现以下几种选项: Delimited - 默认输出列使用逗号分隔,也可以选择其它的诸如 | ,或者 Tab 等. Fixed W ...
- 微软BI SSIS 2012 辅助阅读博客
大家可以根据对应的视频课程名称查找相关的辅助阅读博客,有少量辅助阅读博客和视频课程讲解内容相同,大部分都是拓展总结部分.希望大家在学完每一个视频课程之后看看相关博客内容,这样可以在知识面和深度上继续得 ...
- 基于Python3.6使用Django框架连接mysql数据库的驱动模块安装解决办法
解决办法1 使用PyMySQL模块,直接使用pip install pymysql即可. 参考文章:https://www.cnblogs.com/wcwnina/p/8719482.html 原文内 ...
- 使用Amalgamate将C/C++项目合并成一个.h/.c[pp]文件
简述 C/C++开源库一般是一堆的头文件和源文件,做到声明和实现分离,减小单个模块大小,这在设计上是很好的,但是用起来稍显麻烦.在网上看到有好心人推荐了一个开源工具Amalgamate,专门用来对C/ ...
- phpBB3.2 自动检测浏览器语言
这是根据HTTP request header里的Accept-Language信息来处理的. 首先看一下Accept-Language的格式 Accept-Language: <languag ...
- Mongodb 笔记 - 性能及Java代码
性能 以下数据都是在千兆网络下测试的结果 写入 数据量的增大会导致内存占满, 因为mongodb会将数据尽可能地载入内存, 索引占用的空间也很可观非安全模式下, 速度取决于内存是否占满能差一个数量级, ...
- 苹果产品时间发布表统计(iPhone、iPad),以及32位和64位机的说明
之前因为某些原因,需要对apple家族的手机和pad产品做一个上市时间排序,以及分析分别是哪种CPU机型 总结如下: iPad家族: 1.iPad - 2010.1.27发布 2.iPad 2 ...