最近爲了學習小程序開發及上線的流程,決定本身開發一個小程序,下面是個人開發和部署的過程.前端
開發使用的mpvue+koavue
首先要註冊微信公衆平臺,申請小程序,開通騰訊雲,這樣你會有appId和用於測試的二級域名.node
首先在微信小程序的開發環境的資源下載中下載node.js demomysql
咱們只須要用到demo中的server文件夾.nginx
快速構建一個mpvue的項目my-project 構建方法.git
把server放到my-project中,做爲後端服務,並在project.config.json中增長字段"qcloudRoot": "server/".sql
cd my-project
數據庫
npm install
npm
npm run dev
json
下載小程序開發工具,並打開my-project項目(小程序開發工具也具備編輯功能,固然也能夠用此直接開發,可是仍是建議用本身熟悉的編輯器開發,畢竟用習慣了)
能夠每次修改了server的代碼,將最新代碼經過騰訊雲-上傳測試代碼到騰訊雲的開發環境上進行測試,可是這樣效率過低了,畢竟上傳和部署並無那麼快,並且也很差調試,爲了高效開發,咱們採用本地調試.
如何開通本地調試?
1.在server/config.js中的CONF對象中增長以下代碼
// 其餘配置 ...
serverHost: 'localhost',
tunnelServerUrl: '',
tunnelSignatureKey: '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',
// 騰訊雲相關配置能夠查看雲 API 密鑰控制檯:https://console.cloud.tencent.com/capi
qcloudAppId: '您的騰訊雲AppID',
qcloudSecretId: '您的騰訊雲SecretId',
qcloudSecretKey: '您的騰訊雲SecretKey',
wxMessageToken: 'weixinmsgtoken',
networkTimeout: 30000
複製代碼
2.本地安裝mysql,對於數據庫的配置在config.js中
mysql: {
host: 'localhost',
port: 3306,
user: 'root',//數據庫的用戶名
db: 'cAuth',
pass: '數據庫的密碼',
char: 'utf8mb4'
}
複製代碼
3.新建數據庫cAuth
複製代碼
4.cd server
複製代碼
5.npm install
複製代碼
6.npm run initdb
複製代碼
7.全局安裝保存後自動更新的node程序
sudo npm install -g nodemon
複製代碼
8.能夠愉快地啓動了
npm run dev
至此本地服務已經搭建好了,端口在config.js中,如今咱們能夠愉快地開發前端頁面了.
複製代碼
首先能夠直接使用騰訊雲的小程序服務器,會方便不少,數據庫和nginx已經安裝配置了,不須要本身再麻煩操做.個人首選也是想直接用,可是在我想購買的時候發現沒貨了.沒辦法,只能本身來搭建一下了,下面是我配置阿里雲服務器的過程.
購買阿里ECS服務器
購買域名(在阿里雲平臺上買的)
將域名解析到服務器
將域名進行備案(在阿里雲平臺按步驟進行,耗時比較久)
備案經過後,在微信小程序平臺-開發-開發設置-服務器域名-設置合法域名
進入到你的服務器
安裝nginx
1.添加Nginx存儲庫
sudo yum -y install epel-release
複製代碼
2.安裝nginx
sudo yum -y install nginx
複製代碼
3.啓動Nginx
sudo systemctl start nginx
複製代碼
4.若是你在使用防火牆,須要進行設置
容許http通訊
sudo firewall-cmd --permanent --zone=public --add-service=http
容許https通訊
sudo firewall-cmd --permanent --zone=public --add-service=https
重啓防火牆
sudo firewall-cmd --reload
複製代碼
5.設置開機自啓動
sudo systemctl enable nginx
複製代碼
6.測試
在瀏覽器中鍵入你的ip或域名,若是能看到nginx的歡迎頁面,說明已經安裝並啓動成功了
複製代碼
7.申請ssl證書
由於小程序要求使用https協議,因此咱們須要ssl證書.
能夠在騰訊雲https://console.cloud.tencent.com/ssl申請免費證書.
按提示步驟一步步申請,很快就能申請下來.
而後把申請下來的文件夾中Nginx中的.crt和.key文件拷貝到你的服務器上.
複製代碼
8.配置nginx
進入到nginx的目錄 cd /etc/nginx
能夠看到目錄下有conf.d,這裏是nginx的配置文件放置的地方
cd conf.d
新建一個.conf的文件
配置以下:
upstream app_nodejs {
server 127.0.0.1:5757; //你的node服務地址
}
server {
listen 443 ssl; //https 的默認端口是443
server_name 你的域名;
ssl_certificate /路徑/xxx.crt;
ssl_certificate_key /路徑/xxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
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_pass http://app_nodejs;
proxy_redirect off;
}
}
保存,退出
複製代碼
9.從新加載配置文件
nginx -s reload
若是報這樣相似的錯誤
nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
是由於/var/run目錄下並不存在nginx.pid文件
解決方法一:
須要編輯nginx.conf,將pid這行的註釋去掉,保存退出
查找nginx存在的目錄
whereis nginx
發現nginx存在於下面幾個地方
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
執行命令
/usr/sbin/nginx -c /etc/nginx/nginx.conf
進入到/var/run
能夠看到nginx.pid存在了
此時執行nginx -s reload 會成功
解決方法二:
從新啓動nginx
service nginx stop
service nginx start
進入到/var/run
能夠看到nginx.pid存在了
此時執行nginx -s reload 會成功
這兩個方法均可以試一下,我是第一次用的方法一成功了,第二次用的方法二才能成功,緣由我也不清楚.
複製代碼
安裝mysql
安裝node環境
安裝pm2
安裝git
將項目clone到服務器上
新建cAuth數據庫
cd server
npm run install
npm run initdb
npm run start
pm2 list能夠查看進程是否啓動成功了
將小程序的請求地址指向你配置的域名地址
訪問,看是否成功 至此,小程序服務器的部署就完成了.
如今能夠用小程序開發工具上傳小程序的代碼到微信平臺-提交審覈了-發佈上線了.
以上就是個人開發和部署的流程,固然期間有卡到一些地方,用了一兩天才解決掉,當最後小程序能夠請求成功的時候是很開心的.但願看到文章的你,服務也能部署的順利.