小程序發(fā)布至今也有幾年了,圍繞小程序開發(fā)的生態(tài)做的非常豐富呵恢,云開發(fā)出來(lái)之后更是方便了我們快速開發(fā)上線一個(gè)小程序。使用云開發(fā)媚创,我們無(wú)需自己去單獨(dú)購(gòu)買阿里云渗钉,騰訊云的服務(wù)器,只要開通小程序云開發(fā),即刻擁有云服務(wù)器環(huán)境鳄橘,開通后可以免費(fèi)使用1個(gè)月声离,但是配置不是很高,但這足以應(yīng)付絕大多數(shù)的應(yīng)用了瘫怜,當(dāng)然用的人多了也可以在小程序云開發(fā)上快速橫向擴(kuò)展术徊。今天就來(lái)說(shuō)說(shuō)怎么用小程序云托管部署PHP程序代碼。
1. 開通云開發(fā)
進(jìn)入小程序管理后臺(tái)鲸湃,點(diǎn)擊開發(fā)-云開發(fā)赠涮,進(jìn)入后直接開通,這個(gè)是免費(fèi)的暗挑。
2. 開通云托管
進(jìn)入小程序開發(fā)者工具
笋除,點(diǎn)擊云開發(fā):
在云開發(fā)控制臺(tái)開通云托管,也可以在 “設(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è)版本:
選擇本地上傳:
云托管支持本地上傳和代碼庫(kù)拉取兩種方式:
- 本地上傳可以選擇文件夾或 ZIP 壓縮包進(jìn)行上傳惯殊。需要上傳包含正確 Dockerfile 的代碼目錄酱吝,否則,將提示 Dockerfile 不合法靠胜。
- 代碼庫(kù)拉取支持 GitHub掉瞳,GitLab 和 Gitee 的代碼庫(kù)拉取毕源,需要點(diǎn)擊授權(quán)后浪漠,才可以看到自己的代碼倉(cāng)庫(kù)。在彈出的界面完成代碼授權(quán)后霎褐,關(guān)閉即可看到自己的代碼倉(cāng)庫(kù)址愿。
需要注意,文件夾或 ZIP 壓縮包上傳的代碼中不能超過(guò) 2 MB
在創(chuàng)建版本時(shí)冻璃,可以選擇「稍后配置」或「開啟 100% 流量」兩種流量配置响谓,若選擇「稍后配置」,該版本將不會(huì)被分配流量省艳。
點(diǎn)擊確認(rèn)后娘纷,就會(huì)自動(dòng)幫你創(chuàng)建了:
點(diǎn)擊版本右側(cè)的「詳情」,可以查看版本的詳細(xì)信息跋炕,包括版本的構(gòu)建日志赖晶,版本詳情以及實(shí)例信息:
- 構(gòu)建日志:提供版本構(gòu)建日志信息。若版本構(gòu)建失敗,可以在下方建議處點(diǎn)擊「重新構(gòu)建」
- 版本詳情:可以針對(duì)版本的備注和擴(kuò)縮容實(shí)例數(shù)量進(jìn)行調(diào)整
- 實(shí)例信息:可以看到當(dāng)前容器的實(shí)例遏插,對(duì)應(yīng)的實(shí)例 ID 以及創(chuàng)建時(shí)間捂贿。點(diǎn)擊「Web Shell」,可以在彈出的窗口中對(duì)實(shí)例進(jìn)行操作胳嘲。
調(diào)用云托管服務(wù)
調(diào)用云托管服務(wù)需要基礎(chǔ)版本庫(kù)在2.13.1以上厂僧,先檢查下當(dāng)前的基礎(chǔ)庫(kù)版本:
調(diào)用云托管服務(wù)
在小程序中,使用如下的代碼就可以調(diào)用云托管容器:
// 確認(rèn)已經(jīng)在 onLaunch 中調(diào)用過(guò) wx.cloud.init 初始化環(huán)境
const res = await wx.cloud.callContainer({
path: '/container-helloworld', // 填入容器的訪問(wèn)路徑(云托管-服務(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èn)路徑(云托管-服務(wù)列表-路徑)
// 其余參數(shù)同 wx.request
method: 'POST',
})
console.log(res)