小程序雲托管無需服務器部署PHP


小程序發布至今也有幾年了,圍繞小程序開發的生態做的非常豐富,雲開發出來之后更是方便了我們快速開發上線一個小程序。使用雲開發,我們無需自己去單獨購買阿里雲,騰訊雲的服務器,只要開通小程序雲開發,即刻擁有雲服務器環境,開通后可以免費使用1個月,但是配置不是很高,但這足以應付絕大多數的應用了,當然用的人多了也可以在小程序雲開發上快速橫向擴展。今天就來說說怎么用小程序雲托管部署PHP程序代碼。

1. 開通雲開發

進入小程序管理后台,點擊開發-雲開發,進入后直接開通,這個是免費的。

2. 開通雲托管

進入小程序開發者工具,點擊雲開發:

在雲開發控制台開通雲托管,也可以在 “設置 -> 拓展功能” 中開通。:

3. 創建服務

這里以PHP為例子,其他的都差不多,點擊創建服務,填寫服務名稱后點確定

image

4. 准備代碼

創建一個空文件夾用於放我們的PHP代碼:

mkdir helloworld
cd helloworld

創建index.php並寫入如下內容:

<?php
  echo 'Hello World!';

創建Dockerfile並編輯如下:

# 使用官方 PHP 7.3 鏡像.
# https://hub.docker.com/_/php
FROM php:7.3-apache

# 將本地代碼復制到容器內
COPY index.php /var/www/html/

# Apache 配置文件內使用 8080 端口
RUN sed -i 's/80/8080/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf

# 將 PHP 配置為開發環境
# 如果您需要配置為生產環境,可以運行以下命令
# RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
# 參考:https://hub.docker.com/_/php#configuration
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

添加.dockerignore文件

Dockerfile
README.md
vendor

這個文件的內容是要排除指定的內容。

新建服務版本

給剛剛創建的服務添加一個版本:

選擇本地上傳:

雲托管支持本地上傳和代碼庫拉取兩種方式:

  • 本地上傳可以選擇文件夾或 ZIP 壓縮包進行上傳。需要上傳包含正確 Dockerfile 的代碼目錄,否則,將提示 Dockerfile 不合法。
  • 代碼庫拉取支持 GitHub,GitLab 和 Gitee 的代碼庫拉取,需要點擊授權后,才可以看到自己的代碼倉庫。在彈出的界面完成代碼授權后,關閉即可看到自己的代碼倉庫。

需要注意,文件夾或 ZIP 壓縮包上傳的代碼中不能超過 2 MB

在創建版本時,可以選擇「稍后配置」或「開啟 100% 流量」兩種流量配置,若選擇「稍后配置」,該版本將不會被分配流量。

點擊確認后,就會自動幫你創建了:

點擊版本右側的「詳情」,可以查看版本的詳細信息,包括版本的構建日志,版本詳情以及實例信息:

  • 構建日志:提供版本構建日志信息。若版本構建失敗,可以在下方建議處點擊「重新構建」
  • 版本詳情:可以針對版本的備注和擴縮容實例數量進行調整
  • 實例信息:可以看到當前容器的實例,對應的實例 ID 以及創建時間。點擊「Web Shell」,可以在彈出的窗口中對實例進行操作。

調用雲托管服務

調用雲托管服務需要基礎版本庫在2.13.1以上,先檢查下當前的基礎庫版本:

調用雲托管服務

在小程序中,使用如下的代碼就可以調用雲托管容器:

// 確認已經在 onLaunch 中調用過 wx.cloud.init 初始化環境
const res = await wx.cloud.callContainer({
  path: '/container-helloworld', // 填入容器的訪問路徑(雲托管-服務列表-路徑)
  method: 'GET',
})

console.log(res)

在 Web 端,可以使用如下代碼進行調用:

// 初始化 Cloud 實例
// 容器調用必填環境id,不能為空
var c1 = new wx.cloud.Cloud({
  resourceEnv: '環境id'
})
await c1.init()

// 返回值同 wx.request
const res = await c1.callContainer({
  path: '/container-helloworld', // 填入容器的訪問路徑(雲托管-服務列表-路徑)
  // 其余參數同 wx.request
  method: 'POST',
})

console.log(res)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM