騰訊雲極速配置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進程號

相關文章
相關標籤/搜索