基於 Web 函數部署您的 Laravel 項目:Web Function 實踐教程

PHP 是搭建 Web 服務的常用開發語言之一,基於 PHP 也衍生出了衆多 Web 開發框架,Laravel 便是其中的優秀代表,它具有富於表達性且簡潔的語法,提供了衆多功能,例如模板引擎,MVC 架構支持,安全性高,開發者工具,數據庫遷移等,可以滿足不同場景或規模的 Web 應用開發。

本篇教程將爲您指導,如何通過 SCF Web Function,快速部署您的 Laravel 框架上雲。

01. 模板部署 - 無需改動業務代碼,一鍵部署

  1. 登錄 Serverless 控制檯,單擊左側導航欄的「函數服務」,在主界面上方選擇期望創建函數的地域,並單擊「新建」,進入函數創建流程。
  2. 選擇使用**「模版創建」來新建函數,在搜索框裏輸入 「WebFunc」,篩選所有 Web 函數模版,選擇「Laravel 框架模版」**,點擊 「下一步」,如下圖所示:

  1. 在「配置」頁面,您可以查看模版項目的具體配置信息並進行修改;
  2. 單擊「完成」,即可創建函數。函數創建完成後,可在「函數管理」頁面,查看 Web 函數的基本信息,並通過 API 網關生成的訪問路徑 URL 進行訪問,查看您部署的 Laravel 項目。

02. 自定義部署 - 3 步快速遷移本地項目上雲

1. 本地開發

  1. 首先請在本地環境裏,完成 Laravel 的開發環境搭建,參考官網文檔

  2. 本地創建 Laravel 示例項目,在項目目錄下,通過以下指令,初始化 Laravel 示例應用:

composer create-project --prefer-dist laravel/laravel blog
  1. 本地啓動示例項目後,在瀏覽器裏訪問 http://0.0.0.0:9000,即可在本地完成Laravel 示例項目的訪問
$ php artisan serve --host 0.0.0.0 --port 9000

   Laravel development server started: <http://0.0.0.0:9000>
   [Wed Jul  7 11:22:05 2021] 127.0.0.1:54350 [200]: /favicon.ico

2. 部署上雲

接下來,我們對本地已經創建完成的項目進行部分修改,使其可以通過 Web Function 快速部署,對於 Laravel,具體改造步驟如下:

1. 新增 scf_bootstrap 啓動文件

在項目根目錄下新建 scf_bootstrap 啓動文件,在裏面完成環境變量配置,指定服務啓動命令等自定義操作,確保您的服務可以通過該文件正常啓動。

注意:

  • scf_bootstrap 必須有 755 或者 777 的可執行權限

2. 修改文件讀寫路徑 由於在 SCF 環境內,只有 /tmp 文件可讀寫,其它目錄會由於缺少權限而寫入失敗,因此需要在 scf_bootstrap 裏,以環境變量的方式注入,調整 Laravel 框架的輸出目錄:

#!/bin/bash

# 注入 SERVERLESS 標識
export SERVERLESS=1
# 修改模板編譯緩存路徑,雲函數只有 /tmp 目錄可讀寫
export VIEW_COMPILED_PATH=/tmp/storage/framework/views
# 修改 session 以內存方式(數組類型)存儲
export SESSION_DRIVER=array
# 日誌輸出到 stderr
export LOG_CHANNEL=stderr
# 修改應用存儲路徑
export APP_STORAGE=/tmp/storage

# 初始化模板緩存目錄
mkdir -p /tmp/storage/framework/views

3. 修改監聽地址與端口

在 Web 函數內,限制了監聽端口必須爲 9000,因此需要在在 scf_bootstrap 中,通過指定監聽端口:

/var/lang/php7/bin/php artisan serve --host 0.0.0.0 --port 9000

完整 scf_bootstrap 內容如下:

4. 本地配置完成後,執行啓動文件

確保您的服務可以本地正常啓動,接下來,登錄騰訊云云函數控制檯,新建 Web 函數以部署您的 Laravel 項目:

部署完成後,點擊生成的 URL,即可訪問您的 Laravel 應用:

3. 開發管理

部署完成後,即可在 SCF 控制檯快速訪問並測試您的 Web 服務,並且體驗雲函數多項特色功能如層綁定、日誌管理等,享受 Serverless 架構帶來的低成本、彈性擴縮容等優勢。

Web Function 體驗官招募令

驚喜福利滿滿,點擊查看活動詳情

Web Function 使用體驗

當前已在國內各大區域發佈上線,歡迎體驗使用!

One More Thing

立即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 騰訊雲 Serverless 新手體驗

歡迎訪問:Serverless 中文網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章