小程序發(fā)布至今也有幾年了,圍繞小程序開發(fā)的生態(tài)做的非常豐富,云開發(fā)出來之后更是方便了我們快速開發(fā)上線一個(gè)小程序。使用云開發(fā),我們無需自己去單獨(dú)購買阿里云,騰訊云的服務(wù)器,只要開通小程序云開發(fā),即刻擁有云服務(wù)器環(huán)境,開通后可以免費(fèi)使用1個(gè)月,但是配置不是很高,但這足以應(yīng)付絕大多數(shù)的應(yīng)用了,當(dāng)然用的人多了也可以在小程序云開發(fā)上快速橫向擴(kuò)展。今天就來說說怎么用小程序云托管部署php程序代碼。
1. 開通云開發(fā)

進(jìn)入小程序管理后臺,點(diǎn)擊開發(fā)-云開發(fā),進(jìn)入后直接開通,這個(gè)是免費(fèi)的。
2. 開通云托管
進(jìn)入小程序開發(fā)者工具,點(diǎn)擊云開發(fā):

在云開發(fā)控制臺開通云托管,也可以在 “設(shè)置 -> 拓展功能” 中開通。:

3. 創(chuàng)建服務(wù)
這里以PHP為例子,其他的都差不多,點(diǎn)擊創(chuàng)建服務(wù),填寫服務(wù)名稱后點(diǎn)確定:

4. 準(zhǔn)備代碼
創(chuàng)建一個(gè)空文件夾用于放我們的PHP代碼:
mkdir helloworld
cd helloworld
創(chuàng)建index.php并寫入如下內(nèi)容:
<?php
echo 'Hello World!';
創(chuàng)建Dockerfile并編輯如下:
# 使用官方 PHP 7.3 鏡像.
# https://hub.docker.com/_/php
FROM php:7.3-Apache
# 將本地代碼復(fù)制到容器內(nèi)
COPY index.php /var/www/html/
# Apache 配置文件內(nèi)使用 8080 端口
RUN sed -i 's/80/8080/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf
# 將 PHP 配置為開發(fā)環(huán)境
# 如果您需要配置為生產(chǎn)環(huán)境,可以運(yùn)行以下命令
# 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
這個(gè)文件的內(nèi)容是要排除指定的內(nèi)容。
新建服務(wù)版本
給剛剛創(chuàng)建的服務(wù)添加一個(gè)版本:

選擇本地上傳:

云托管支持本地上傳和代碼庫拉取兩種方式:
- 本地上傳可以選擇文件夾或 ZIP 壓縮包進(jìn)行上傳。需要上傳包含正確 Dockerfile 的代碼目錄,否則,將提示 Dockerfile 不合法。
- 代碼庫拉取支持 GitHub,GitLab 和 Gitee 的代碼庫拉取,需要點(diǎn)擊授權(quán)后,才可以看到自己的代碼倉庫。在彈出的界面完成代碼授權(quán)后,關(guān)閉即可看到自己的代碼倉庫。
需要注意,文件夾或 ZIP 壓縮包上傳的代碼中不能超過 2 MB
在創(chuàng)建版本時(shí),可以選擇「稍后配置」或「開啟 100% 流量」兩種流量配置,若選擇「稍后配置」,該版本將不會被分配流量。
點(diǎn)擊確認(rèn)后,就會自動幫你創(chuàng)建了:

點(diǎn)擊版本右側(cè)的「詳情」,可以查看版本的詳細(xì)信息,包括版本的構(gòu)建日志,版本詳情以及實(shí)例信息:
- 構(gòu)建日志:提供版本構(gòu)建日志信息。若版本構(gòu)建失敗,可以在下方建議處點(diǎn)擊「重新構(gòu)建」
- 版本詳情:可以針對版本的備注和擴(kuò)縮容實(shí)例數(shù)量進(jìn)行調(diào)整
- 實(shí)例信息:可以看到當(dāng)前容器的實(shí)例,對應(yīng)的實(shí)例 ID 以及創(chuàng)建時(shí)間。點(diǎn)擊「Web Shell」,可以在彈出的窗口中對實(shí)例進(jìn)行操作。
調(diào)用云托管服務(wù)
調(diào)用云托管服務(wù)需要基礎(chǔ)版本庫在2.13.1以上,先檢查下當(dāng)前的基礎(chǔ)庫版本:

調(diào)用云托管服務(wù)
在小程序中,使用如下的代碼就可以調(diào)用云托管容器:
// 確認(rèn)已經(jīng)在 onLaunch 中調(diào)用過 wx.cloud.init 初始化環(huán)境
const res = await wx.cloud.callContainer({
path: '/container-helloworld', // 填入容器的訪問路徑(云托管-服務(wù)列表-路徑)
method: 'GET',
})
console.log(res)
在 Web 端,可以使用如下代碼進(jìn)行調(diào)用:
// 初始化 Cloud 實(shí)例
// 容器調(diào)用必填環(huán)境id,不能為空
var c1 = new wx.cloud.Cloud({
resourceEnv: '環(huán)境id'
})
await c1.init()
// 返回值同 wx.request
const res = await c1.callContainer({
path: '/container-helloworld', // 填入容器的訪問路徑(云托管-服務(wù)列表-路徑)
// 其余參數(shù)同 wx.request
method: 'POST',
})
console.log(res)

學(xué)會部署PHP,后其他環(huán)境也都差不多,比如node、Python,都大同小異。