轻松搭建基于 Serverless 的 ThinkPHP 应用

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传 。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费 。函数计算更多信息 参考 。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源 。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作 。Fun 的更多文档 参考 。
备注: 本文介绍的技巧需要 Fun 版本大于等于 3.6.3 。
轻松搭建基于 Serverless 的 ThinkPHP 应用

文章插图
 
Thinkphp%20是什么?ThinkPHP%20是一个免费开源的,快速、简单的面向对象的轻量级%20PHP%20开发框架,是为了敏捷%20WEB%20应用开发和简化企业应用开发而诞生的 。ThinkPHP%20从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性 。遵循%20Apache2%20开源许可协议发布,意味着你可以免费使用%20ThinkPHP,甚至允许把你基于%20ThinkPHP%20开发的应用开源或商业产品发布/销售 。
效果预览本文涉及到的两个应用示例部署后的链接,点击预览效果:
  • ThinkPHP%20官方示例:http://13492727-1986114430573743.test.functioncompute.com
  • ThinkPHP%20博客示例:http://13500180-1986114430573743.test.functioncompute.com
  • ThinkPHP%20博客示例管理后台:http://13500180-1986114430573743.test.functioncompute.com/admin
环境准备首先按照%20Fun%20的安装文档里介绍的方法将%20Fun%20安装到本机 。
PS:%20本文介绍的方法,不需要安装%20Docker,仅仅安装%20Fun%20即可,最简单的方式就是直接下载可执行的二进制文件 。
安装完成后,可以执行%20fun%20--version%20检查%20Fun%20是否安装成功 。
第一个示例:快速初始化并部署一个%20ThinkPHP%20示例应用初始化一个%20thinkphp%20示例:
composer%20create-project%20topthink/think%20tp将该示例在本地运行测试:
php%20think%20run可以在本地看到效果:
 
传统的开发方式是,本地开发完成后,就要进行部署工作了,通常我们部署一个 PHP 应用可能需要如下几步:
  1. 购买一台物理机器,比如 ECS
  2. 在物理机器上绑定公网 ip、安装 php、Nginx、php-fpm
  3. 配置 nginx、php-fpm 以及上传应用到该机器上
  4. 运行测试
其中最复杂的就要数第 2、3 步了,因为可能不同的环境的配置方法还不一样,会有比较多的坑 。我们演示下如何将应用部署到函数计算上 。
【轻松搭建基于 Serverless 的 ThinkPHP 应用】fun deploy仅需要一个命令,Fun 会自动进入部署流程,在该流程中,用户仅仅需要按下一系列的回车即可 。流程细节如下:
  1. Fun 检测到这不是一个 Fun 项目,会提示协助创建(直接回车或者输入 y 即可)
  2. Fun 项目自动创建成功,提示是否进行部署?可以直接回车,或者输入 y 进行确认
  3. 然后 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 runThinkPHP 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


推荐阅读