首頁  >  文章  >  php框架  >  如何建立一個基於Serverless的TP框架應用

如何建立一個基於Serverless的TP框架應用

藏色散人
藏色散人轉載
2021-08-05 16:13:451874瀏覽

首先介紹下本文出現的幾個比較重要的概念:


函數計算(Function Compute): 函數計算是一個事件驅動的服務,透過函數計算,使用者無需管理伺服器等運行情況,只需編寫程式碼並上傳。函數計算準備計算資源,並以彈性伸縮的方式運行使用者程式碼,而使用者只需根據實際程式碼運行所消耗的資源進行付費。函數計算更多資訊 參考。

Fun: Fun 是用來支援 Serverless 應用程式部署的工具,可協助您便利地管理函式運算、API 閘道、日誌服務等資源。它透過一個資源設定檔(template.yml),協助您進行開發、建置、部署作業。 Fun 的更多文件 參考。

備註: 本文介紹的技巧需要 Fun 版本大於等於 3.6.3。

推薦教學:《

thinkphp教學
  1. ThinkPHP 是什麼?
ThinkPHP 是一個免費開源的,快速、簡單的物件導向的輕量級 PHP 開發框架,是為了敏捷 WEB 應用開發和簡化企業應用開發而誕生的。 ThinkPHP 從誕生以來一直秉承簡潔實用的設計原則,在保持出色的效能和至簡程式碼的同時,更注重易用性。遵循 Apache2 開源授權協議發布,這意味著你可以免費使用 ThinkPHP,甚至允許把你基於 ThinkPHP 開發的應用程式開源或商業產品發布/銷售。

效果預覽

本文涉及到的兩個應用範例部署後的鏈接,點擊預覽效果:

ThinkPHP 官方範例:http://13492727- 1986114430573743.test.functioncompute.com

ThinkPHP 部落格範例:http://13500180-1986114430573743.test.functioncompute.com

14430573743.test.functioncompute.com

ThinkPHP 13743.test.functioncompute.com

ThinkPHP 13743.5031350313821313213031321303132130313213032138213303137303132138233032138213303213821303130313231373003722133037221333722333337部分。 test.functioncompute.com/admin

環境準備

先依照Fun 的安裝文件裡介紹的方法將Fun 安裝到本機。

PS: 本文介紹的方法,不需要安裝 Docker,只要安裝 Fun 即可,最簡單的方式就是直接下載可執行的二進位。

    安裝完成後,可以執行 fun --version 檢查 Fun 是否安裝成功。
  1. 第一個範例:快速初始化並部署一個ThinkPHP 範例應用
  2. 初始化一個thinkphp 範例:
  3. composer create-project topthink/think tp
  4. 將此範例在本機上執行測試:
  5. php think run
  6. 可以在本地看到效果:

  1. 傳統的開發方式是,本地開發完成後,就要進行部署工作了,通常我們部署一個PHP 應用程式可能需要以下幾個步驟:
    購買一台實體機器,例如ECS
  2. 在實體機器上綁定公網ip、安裝php、nginx、php- fpm

  3. 配置nginx、php-fpm 以及上傳應用到該機器上運行測試
  4. 其中最複雜的就要數第2、3 步了,因為可能不同的環境的配置方法還不一樣,會有比較多的坑。我們示範如何將應用程式部署到函數計算上。
    fun deploy
    只需要一個命令,Fun 會自動進入部署流程,在該流程中,使用者只需按下一系列的回車即可。流程細節如下:
  5. Fun 偵測到這不是Fun 項目,會提示協助建立(直接回車或輸入y 即可)

##### ####Fun 專案自動建立成功,提示是否進行部署?可以直接回車,或者輸入y 進行確認##################然後Fun 會直接將應用程式部署到線上了########### ##########部署完成後,我們可以根據部署成功的日誌看到,函數計算為我們產生了臨時網域13492727-1986114430573743.test.functioncompute.com,我們可以透過這個臨時網域直接訪問我們剛剛部署的應用程式。 ###

备注:临时域名仅仅用作演示以及开发,是有时效的,如果用作生产,请绑定已经备案的域名。

第二个示例:快速迁移一个已有的 ThinkPHP 应用

这里我们拿一个开源的 ThinkPHP 博客做示例:https://github.com/wolf-leo/Wolf-Blog

首先我们需要将 blog 克隆下来:

git clone https://github.com/wolf-leo/Wolf-Blog.git

使用 composer 安装依赖:

composer install

在要使用的 mysql 数据库上新建一个名为 blog_test 的 database。然后编辑 config/database.php 文件,修改其中的数据库地址、用户名、密码信息。

// ... ...
return [
    // ... ...
    // 服务器地址
    'hostname' => '192.168.17.104',
    // 数据库名 测试数据库名称 不用修改 否则默认安装会出错
    'database' => 'blog_test',
    // 用户名  需要修改的地方
    'username' => 'root',
    // 密码     需要修改的地方
    'password' => 'root',
    // ... ...
];

修改完成后,就可以本地启动查看效果了:

$ php think run

ThinkPHP Development server is started On <http://127.0.0.1:8000/>
You can exit with `CTRL-C`
Document root is: /examples/php/Wolf-Blog/public

然后打开 http://localhost:8000 可以直接看到效果。

本地测试没问题后,就要进行部署了。部署前,我们需要知道,由于函数计算运行时代码目录本身是不可以修改的,而 ThinkPHP 会在代码目录下的 Runtime 这个目录写一些缓存文件,我们需要将这个缓存文件放到 /tmp 下面。在我们的例子中就是将 thinkphp/library/think/App.php 这个文件的第 174 行做如下修改:

- $this->runtimePath = $this->rootPath . 'runtime' . DIRECTORY_SEPARATOR;
+ $this->runtimePath = DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;

修改完成后可以直接使用以下命令进行部署:

fun deploy

经历与第一个示例一样的步骤后,我们可以得到一个可以访问的临时域名进行测试:13500180-1986114430573743.test.functioncompute.com。打开该临时域名,可以预览到与本地运行一样的效果。

还可以访问 13500180-1986114430573743.test.functioncompute.com/admin 打开该应用的管理后台:

总结

本文主要介绍了如何将 ThinkPHP 应用部署到函数计算。相比较与传统的部署方法,不仅没有更复杂,还省略了购买机器、安装配置 Nginx、安装配置 php-fpm 等步骤。可以实现,将传统的 ThinkPHP 应用在本地开发完成后,一键部署到远端直接用于生产,并拥有了弹性伸缩、按量付费、免运维等特性。

以上是如何建立一個基於Serverless的TP框架應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除