Ubuntu 16.04 下部署Node.js+MySQL微信小程序商城

本文檔不再更新
推薦使用阿里云 CentOS 部署
安裝文檔:https://nideshop.com/docs/deployment-centos.html

本文檔為微信小程序商城NideShop項(xiàng)目的安裝部署教程隆判,歡迎star

環(huán)境介紹

阿里云 ECS Ubuntu 16.04 64 直達(dá)鏈接

更新系統(tǒng)和安裝 git、vim侨嘀、curl

apt update -y
apt upgrade -y
apt install curl git -y

通過 nvm 安裝 Node.js

  • 安裝 nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash

驗(yàn)證安裝是否成功

source ~/.bashrc
nvm --version

看到輸出版本信息 0.33.5 表示安裝成功

  • 查看最新 8.x 版本 Node.js 版本并安裝
nvm ls-remote
nvm install v8.2.1
node -v

看到輸出版本信息 v8.2.1 表示安裝成功

必須安裝 Node.js 8.x 以上版本

安裝 MySQL 5.7

apt  install mysql-server -y

安裝過程會要求設(shè)置 root 用戶的密碼臭挽,并記住密碼

驗(yàn)證 mysql 是否安裝成功

mysql -uroot -p 

回車后輸入安裝時輸入的密碼咬腕,登錄成功后的樣子


登錄成功后

開始運(yùn)行 NideShop

  • 下載 NideShop 的源碼
mkdir /var/www
cd /var/www
git clone https://github.com/tumobi/nideshop
  • 全局安裝 ThinkJS 命令
npm install -g think-cli
thinkjs -v
  • 安裝依賴
cd /var/www/nideshop
npm install 
  • 創(chuàng)建數(shù)據(jù)庫并導(dǎo)入數(shù)據(jù)
 mysql -uroot -p -e "create database nideshop character set utf8mb4"
 mysql -uroot -p nideshop < /var/www/nideshop/nideshop.sql
  • 修改 Nideshop 的數(shù)據(jù)庫配置
vim src/common/config/database.js

修改后

const mysql = require('think-model-mysql');

module.exports = {
    handle: mysql,
    database: 'nideshop',
    prefix: 'nideshop_',
    encoding: 'utf8mb4',
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '你的密碼',
    dateStrings: true
};
>注意 encoding涨共,prefix 的值

編譯項(xiàng)目

npm run compile

以生產(chǎn)模式啟動

node production.js

打開另一個終端驗(yàn)證是否啟動成功

curl -I http://127.0.0.1:8360/

輸出 HTTP/1.1 200 OK,則表示成功
** Ctrl + C 停止運(yùn)行**
> 為防止后面操作出現(xiàn)[Error] Error: Address already in use, port:8360. 的錯誤举反,一定要記得Ctrl + C停止運(yùn)行,并確保curl -I http://127.0.0.1:8360/不能訪問

### 使用 PM2 管理服務(wù)

+ 安裝配置 pm2

npm install -g pm2

修改項(xiàng)目根目錄下的 pm2.json 為:

vim pm2.json

修改后的內(nèi)容如下 :

{
"apps": [{
"name": "nideshop",
"script": "production.js",
"cwd": "/var/www/nideshop",
"exec_mode": "fork",
"max_memory_restart": "256M",
"autorestart": true,
"node_args": [],
"args": [],
"env": {

}

}]
}

如果服務(wù)器配置較高火鼻,可適當(dāng)調(diào)整 max_memory_restart 和instances的值
+ 啟動pm2

pm2 start pm2.json

成功啟動

![image.png](http://upload-images.jianshu.io/upload_images/3985656-21a6aa802f7bb1ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

再次驗(yàn)證是否可以訪問

curl -I http://127.0.0.1:8360/


### 使用 nginx 做反向代理

apt install nginx -y

測試本地是否可以正常訪問

curl -I localhost

修改nginx配置

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
vim /etc/nginx/sites-available/default

修改后的內(nèi)容

server {
listen 80;
server_name nideshop.com www.nideshop.com; # 改成你自己的域名
root /var/www/nideshop/www;
set $node_port 8360;

index index.js index.html index.htm;
if ( -f $request_filename/index.html ){
    rewrite (.*) $1/index.html break;
}
if ( !-f $request_filename ){
    rewrite (.*) /index.js;
}
location = /index.js {
    proxy_http_version 1.1;
    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 Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://127.0.0.1:$node_port$request_uri;
    proxy_redirect off;
}

location ~ /static/ {
    etag         on;
    expires      max;
}

}

+ 重新啟動nginx并驗(yàn)證nginx是否還可以正常訪問

nginx -t
service nginx restart
curl http://127.0.0.1/

如果返回的是下圖的json數(shù)據(jù)則表示nginx反向代理配置成功

![nginx轉(zhuǎn)發(fā)成功](http://upload-images.jianshu.io/upload_images/3985656-ff191d58e075c41c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
> 注:阿里云默認(rèn)外網(wǎng)不能訪問80/443端口,請更改實(shí)例的安全組配置融撞,配置教程:https://help.aliyun.com/document_detail/25475.html?spm=5176.doc25475.3.3.ZAx4Uo

### 配置https訪問
+ 安裝certbot

apt install software-properties-common
add-apt-repository ppa:certbot/certbot
apt update -y
apt install python-certbot-nginx -y
certbot --nginx


+ 配置自動更新證書

certbot renew --dry-run

> 詳情文檔請查看:https://certbot.eff.org/#ubuntuxenial-nginx

+ 測試瀏覽器使用https形式訪問是否成功
![配置https訪問成功](http://upload-images.jianshu.io/upload_images/3985656-9b0cfb1db7c99c3e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



### 修改NideShop微信小程序客戶端的配置
微信小程序商城客戶端GitHub: https://github.com/tumobi/nideshop-mini-program
打開文件config/api.js粗蔚,修改NewApiRootUrl為自己的域名

var NewApiRootUrl = 'https://www.nideshop.com/api/';

> 注意https和后面的api/不能少

到此部署成功。如有問題請加QQ群:497145766
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冬念,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子急前,更是在濱河造成了極大的恐慌瀑构,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寺晌,死亡現(xiàn)場離奇詭異,居然都是意外死亡耘婚,警方通過查閱死者的電腦和手機(jī)陆赋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攒岛,“玉大人,你說我怎么就攤上這事兢榨∷骋” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵兼雄,是天一觀的道長。 經(jīng)常有香客問我澎办,道長金砍,這世上最難降的妖魔是什么局蚀? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任琅绅,我火速辦了婚禮,結(jié)果婚禮上千扶,老公的妹妹穿的比我還像新娘。我一直安慰自己澎羞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布顺呕。 她就那樣靜靜地躺著括饶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪图焰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天僵闯,我揣著相機(jī)與錄音堕阔,去河邊找鬼棍厂。 笑死超陆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的张漂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼航攒,長吁一口氣:“原來是場噩夢啊……” “哼趴梢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坞靶,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瘾敢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體簇抵,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年晃财,在試婚紗的時候發(fā)現(xiàn)自己被綠了典蜕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖栖博,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仇让,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布卫玖,位于F島的核電站踊淳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏迂尝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一琴许、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榜田,春花似錦锻梳、人聲如沸箭券。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庆捺。三九已至古今,卻和暖如春滔以,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背你画。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工坏匪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拟逮,地道東北人适滓。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像罚屋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子脾猛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容