前言
Serverless 可以让用户快速将项目以较小成本部署,按需运行,节约资源
Web Function 基本跟普通Web应用开发流程无差别,却能将Serverless模式发挥
这篇文章 记录一下 怎么在Web Function 服务中,部署PHP项目,其中有一些小技巧、总体流程。
本次测试总结
先在文首总结一下本次测试感受和建议
- 教程说明文档可能还不够明显、详细
- 对于php的支持不够完善,如composer命令
- php版本不够灵活(其他语言不知是否有该问题) 如php7 其实是7.2.2 但项目所需是7.2.4 没有找到切换版本入口
- 以php cli模式监听服务,对路由处理可能存在缺陷,无法同nginx一般 定义伪静态规则
创建示例项目
选择PHP5或者PHP7,这里用的示例项目是TP6,所以选择7的
创建完成之后的示例项目结构如下
原理解析
这里的原理是:PHP cli模式, php -S 是创建一个轻量HTTP服务,监听9000端口 使用的入口文件是hello.php
我们的总思路是:php think run
模式(TP6),运行TP服务,监听0.0.0.0:9000
端口
scf_bootstrap是Web Function的部署脚本,在其中定义项目部署后的运行命令,启动HTTP服务。
开发流程
- 在本地开发,并且composer安装好组件包(写文章时,Web Function暂不支持运行composer指令)
- 在本地项目根目录创建
scf_bootstrap脚本
,写明TP框架启动命令 - 打包zip,上传,并部署
测试目录结构、脚本内容
代码语言:javascript复制#!/bin/bash
/var/lang/php7/bin/php -c /var/runtime/php7 think run -p 9000 -H 0.0.0.0