目錄:node
(一)基礎準備mysql
(二)安裝nodelinux
(三)安裝nginxnginx
(四)安裝mySql8.0web
(五)總體配置sql
(六)安裝PM2守護進程shell
(一)基礎準備
1.1 概述數據庫
服務器操做系統爲 centos7.4,目的是配置nodejs服務器,用於微信小程序的服務端。npm
1.2 名詞小程序
1. putty : 遠程鏈接linux服務器命令行的工具,若是你在服務器旁邊就無需使用了。
本文用於登錄到服務器執行配置命令。
2. FileZilla : 遠程鏈接linux服務器可視化上傳文件的工具。
本文用於上傳網站文件,及修改配置文件。
3. Nginx : 是一款是由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 服務器。
本文中用於單IP配置多個網站。
4. Node.js : 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。
後期的開發軟件就基於node
5. MySQL : Mysql是流行的關係型數據庫管理系統
6. https: 是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,所以加密的詳細內容就須要SSL。
https的默認端口是443, 就像http默認端口80同樣,使用的時候不用加端口號。
7. websocket : 約定了一個通訊的規範,經過一個握手的機制,客戶端(瀏覽器)和服務器(webserver)之間能創建一個相似tcp的鏈接,從而方便c-s之間的通訊。
使用相似 ws://127.0.0.1 鏈接
8. PM2 node.js的守護進程
(二)安裝node
首先連上centos服務器,使用putty或其餘的方式。
node安裝基本方法就是下載最新版的node壓縮包,解壓到服務器,創建全局映射軟鏈接。好比能夠下載到本地解壓後用FileZilla上傳到服務器。
如下經過命令行進行安裝。
一、wget下載node.js安裝包。
wget https://nodejs.org/dist/v9.11.1/node-v9.11.1-linux-x64.tar.xz
// 本文安裝node9.11.1版本,若是其餘版本能夠本身換
二、 解壓文件。
tar xvf node-v9.11.1-linux-x64.tar.xz
三、移動文件到 /usr/local/node文件裏
mkdir -p /usr/local/node // 新建文件夾
mv /root/node-v9.11.1-linux-x64/* /usr/local/node/ // 將文件移動到/usr/local/node下。
四、到此node和npm只能在 /usr/local/node/bin文件下使用,要想node和npm全局有效,能夠經過建立軟鏈接。
ln -s /usr/local/node/bin/node /usr/local/bin/node // 建立node軟鏈接
ln -s /usr/local/node/bin/npm /usr/local/bin/npm // 建立npm軟鏈接
若是文件想換個目錄,能夠先刪除軟鏈接,在建立軟鏈接:
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
五、查看node和npm版本
node -v
npm -v
若是返回版本號,就能夠肯定是安裝成功了。node的安裝方法有不少,另外一種常見的是編譯安裝,編譯安裝相對較複雜些,
(三)安裝nginx
安裝方法有不少,這裏是用的yum安裝的
// 添加CentOS 7 Nginx yum資源庫
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
// 安裝最新版
yum install -y nginx
檢查nginx是否安裝成功
nginx -t // 有下面提示表明安裝成功
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
啓動nginx
systemctl start nginx.service // 啓動nginx
systemctl stop nginx.service // 中止nginx
systemctl restart nginx.service // 重啓nginx
systemctl enable nginx.service // 設置開機啓動
nginx啓動後在瀏覽器中輸入http://外網IP地址,你就能夠看到一個nginx頁面
(四)安裝mySql8.0
MySQL 8.0是自5.7以後的新版本.本文的安裝採用yum在線安裝的方式,也可使用編譯安裝
a)配置MySQL8.0的安裝源.
在mysql官網上找到源,打開網址: https://dev.mysql.com/downloads/repo/yum/
進入下一個頁面,鼠標指向紅色圈住的連接,能夠找到對應的地址
搞到源了,就能夠執行安裝了
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
//能夠跳過wget,yum安裝時候會自動下載,若是比較慢,仍是先wget吧。
wget http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql-community-server-8.0.11-1.el7.x86_64.rpm
b)安裝MySQL 8.0
yum install mysql-server
c)啓動Mysql服務.
service mysqld start
d)查看MySQL的狀態.
service mysqld status
e)查看mysql爲root用戶生成的臨時密碼
grep "A temporary password" /var/log/mysqld.log
使用mysql生成的'root'@'localhost'用戶和密碼登陸數據庫,並修改 其密碼,具體命令
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
修改密碼策略:(先要修改臨時密碼,才能查看密碼策略,才能修改成簡單密碼!!!)
一、查看當前密碼策略
show variables like '%password%';
2. 修改密碼策略,也能夠在/etc/my.cnf文件添加validate_password_policy配置
set global validate_password.length=1; //雖然設置=1,結果也是最小4位,mysql的限制
set global validate_password.policy=0;
3. 修改成簡單的的密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
4.刷新權限;
flush privileges;
5. 查看認證方式
SELECT host,user,plugin,authentication_string FROM mysql.user;
最主要的是mysql8登陸的密碼協議發生了變動,使用mysql命令行客戶端徹底能夠登陸,以前編寫的程序不能登錄,提示錯誤。顯示的意思爲「認證協議「錯誤。
修改認證方式,使用傳統的認證
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypass';
//已廢棄 update mysql.user set authentication_string = password(‘你準備設置的密碼’) where user = ‘用戶名’;
經常使用指令:
create database 數據庫名;
導入:source /root/wwwroot/Dump20180420.sql; (假設我這裏文件在/root/wwwroot/Dump20180420.sql)
注意mysql導出sql文件的時候,將全部表名變成了小寫。導入以後可能已有的程序找不到表。
須要 在/etc/my.cnf 文件添加大小寫敏感配置
mysql 區分大小寫
lower_case_table_names=1 大小寫不敏感,表名存儲在磁盤是小寫的,可是比較的時候是不區分大小寫
lower_case_table_names=0 表名存儲爲給定的大小和比較是區分大小寫的
lower_case_table_names=2, 表名存儲爲給定的大小寫可是比較的時候是小寫的
最後重啓一下MySql服務便可
service mysqld restart
導入數據的時候注意大小寫問題 linux將sql中表名變成了小寫
而原先設計的mysql數據庫中,表名是用大小寫來間隔單詞的,是大小寫敏感(mysql部署在linux上)
(五)總體配置
5.1 配置網站目錄
我這裏將網站放在了root目錄下面,注意修改root目前的權限爲755。新建目錄及修改權限的操做我是經過FileZilla鏈接創建的。
在root目錄下面創建wwwroot文件夾用於存放網站文件。
在wwwroot目錄下面創建www.acctc.com文件夾,
在wwwroot目錄下面創建www.open3rd.com文件夾,
這兩個文件夾用於放置不一樣域名的網站內容,後面要配置到nginx裏面。
5.2 配置nginx
nginx配置:
nginx配置文件爲 /etc/nginx/nginx.conf
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:3000; # 本地node啓動的端口爲3000
}
}
將proxy_pass 的值改成 http://127.0.0.1:3000, 3000的端口號爲本地node啓動的端口號。
重啓nginx
systemctl restart nginx.service
在瀏覽器中輸入http://IP地址,進行測試
(六)安裝PM2守護進程
npm install pm2 -g
創建軟鏈接
sudo ln -s /usr/local/node/bin/pm2 /usr/bin/pm2
開始運行
pm2 start /root/wwwroot/www.acctc.com/app.js
查看列表
pm2 list
將當前執行列表保存到開機運行
pm2 save
pm2 startup
取消開機自啓動
pm2 unstartup systemd