【Web Function】初体验:PHP搭建TP框架服务

2021-07-02 14:45:21 浏览数 (1)

前言

Serverless 可以让用户快速将项目以较小成本部署,按需运行,节约资源

Web Function 基本跟普通Web应用开发流程无差别,却能将Serverless模式发挥

这篇文章 记录一下 怎么在Web Function 服务中,部署PHP项目,其中有一些小技巧、总体流程。

本次测试总结

先在文首总结一下本次测试感受和建议

  1. 教程说明文档可能还不够明显、详细
  2. 对于php的支持不够完善,如composer命令
  3. php版本不够灵活(其他语言不知是否有该问题) 如php7 其实是7.2.2 但项目所需是7.2.4 没有找到切换版本入口
  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服务。

开发流程

  1. 在本地开发,并且composer安装好组件包(写文章时,Web Function暂不支持运行composer指令)
  2. 在本地项目根目录创建 scf_bootstrap脚本,写明TP框架启动命令
  3. 打包zip,上传,并部署

测试目录结构、脚本内容

代码语言:javascript复制
#!/bin/bash
/var/lang/php7/bin/php  -c /var/runtime/php7 think run -p 9000 -H 0.0.0.0

一些调试技巧

上传压缩包

image.pngimage.png

上传代码后,可以在终端中运行脚本,测试环境(一开始没有测试,直接跑,结果报错HTTP405)

image.pngimage.png
image.pngimage.png

0 人点赞