自行搭建小程序服務器

最近爲了學習小程序開發及上線的流程,決定本身開發一個小程序,下面是個人開發和部署的過程.前端

開發

開發使用的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 installnpm

  • npm run devjson

  • 下載小程序開發工具,並打開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能夠查看進程是否啓動成功了

  • 將小程序的請求地址指向你配置的域名地址

  • 訪問,看是否成功 至此,小程序服務器的部署就完成了.

如今能夠用小程序開發工具上傳小程序的代碼到微信平臺-提交審覈了-發佈上線了.

以上就是個人開發和部署的流程,固然期間有卡到一些地方,用了一兩天才解決掉,當最後小程序能夠請求成功的時候是很開心的.但願看到文章的你,服務也能部署的順利.

相關文章
相關標籤/搜索