ServerLess实战:函数计算+NAS搭建无服务器thinkphp5

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 如果太忙都有可能忘记续费主机或者服务器,而且每次买配置过低或者过高都不合适,所以这次用函数计算+NAS搭建无需续费无存储大小限制无需考虑带宽CPU等性能瓶颈,来搭建常用的tp5 先放懒人包下载,上传即用 1、必备条件 A、开通函数计算与NAS服务 B、绑定函数计算域名 C、挂载NAS到同区域节点的ECS上方便文件的复制粘贴修改操作 D、给账户充钱。

如果太忙都有可能忘记续费主机或者服务器,而且每次买配置过低或者过高都不合适,所以这次用函数计算+NAS搭建无需续费无存储大小限制无需考虑带宽CPU等性能瓶颈,来搭建常用的tp5

先放懒人包下载,详见附件,上传NAS

1、必备条件
A、开通函数计算与NAS服务
B、绑定函数计算域名
C、挂载NAS到同区域节点的ECS上方便文件的复制粘贴修改操作
D、给账户充钱。函数计算和NAS扣费都是后付费,要保证账户余额
2、函数计算配置详解
A、选择区域创建服务,要和NAS选择同一区域
360_20190930162537249

B、新建服务、绑定NAS
360_20190930162657455
TIM_20190930162811
绑定nas的时候写用户不用用他默认的-1,那个读不出来,自己随便定一个ID
C、新建函数、编写函数代码

选择HTTP函数,运行环境选择php7.2,触发器选择任何人,其他随意
以下是函数代码,
<?php
//#自定义的域名,绑定了自定义域名的,可以换成自己自定义的。
$MY_HOST    = "你的地址哈3333.cn-cn-hangzhou.fc.aliyuncs.com";
//#web目录,默认是tp5的public目录,绝对路径,如:/code/public
$WWW_DIR = '/mnt/think5/public';
 
function handler($request, $context){
 
 
$uri  = $request->getAttribute("requestURI");
//return $uri;
$file = explode("?", $uri)[0];
if($file=='/') $uri='/';
$file = $GLOBALS['WWW_DIR'].$file;
 
if(file_exists($file) and $uri!='/'){
    if(strpos($uri,".php")) return php_run(basename($file), $request, $context);#php_run
    return static_run($uri);#static_run
}
 
$request = $request->withAttribute("requestURI", "?s=".$uri);
return php_run('index.php', $request, $context);# php_run
 
}
 
function php_run($name,$request, $context)
{
return $GLOBALS['fcPhpCgiProxy']->requestPhpCgi($request, $GLOBALS['WWW_DIR'], $name,['SERVER_NAME' => $GLOBALS['MY_HOST'], 'SERVER_PORT' => '80', 'HTTP_HOST' => $GLOBALS['MY_HOST']],['debug_show_cgi_params' => false, 'readWriteTimeout' => 15000]);
}
use RingCentral\Psr7\Response;
function static_run($uri): Response{
$file_dir = $GLOBALS['WWW_DIR'].$uri; #完整文件路径
$file_dir = explode("?", $file_dir)[0]; #去掉动态路径
if(is_dir($file_dir)) $file_dir .= '/index.html';# 可以这里定义目录的默认索引页
$handle   = fopen($file_dir, "r");
$contents = fread($handle, filesize($file_dir));
fclose($handle);
return new Response(200, ['Content-Type'  => $GLOBALS['fcPhpCgiProxy']->getMimeType($file_dir),'Cache-Control' => "max-age=8640000",'Accept-Ranges' => 'bytes'], $contents);
}
 
function clearFcHost($request,$context){
$uri  = $request->getAttribute("requestURI");
$uri  = str_replace("/2016-08-15/proxy/".$context['service']['name']."/".$context['function']['name'],"",$uri);
$request = $request->withAttribute("requestURI", $uri);
return $request;
}
 

D、配置自定义域名
如图:
360_20190930163819751

3、NAS配置详解
在对应目录上传代码包,点击下载,解压缩代码即可
4、测试访问
你的域名直接访问
你的域名/index.php?s=index/index/index
你的域名/about

都没问题的话就大功告成

相关文章
|
3月前
|
消息中间件 运维 Serverless
函数计算产品使用问题之如何部署Stable Diffusion Serverless API
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
23天前
|
机器学习/深度学习 弹性计算 运维
云计算系列之阿里云ECS服务器管理实战
本文档介绍了阿里云ECS(Elastic Compute Service)的基本概念、实例管理、磁盘操作、快照与镜像功能及其应用场景,最后通过具体案例解析ECS的实际应用。ECS是阿里云提供的高效、可靠的云计算服务,支持多种业务需求,如Web应用、高并发网站、数据库等,帮助企业快速构建稳定安全的应用,提升运维效率,降低IT成本。文档还详细说明了ECS实例的创建方式、连接方法及日常管理操作,帮助用户更好地利用ECS服务。
59 2
云计算系列之阿里云ECS服务器管理实战
|
24天前
|
机器学习/深度学习 监控 Serverless
无服务器架构(Serverless)
无服务器架构(Serverless)
|
1月前
|
监控 Serverless 云计算
探索Serverless架构:无服务器计算的新纪元
Serverless架构作为云计算的新范式,让开发者无需管理服务器即可构建和运行应用,从而专注于代码开发。其核心优势包括成本效益、自动扩展及高效部署。通过事件驱动模型和微服务部署,开发者按需付费,减少了资源浪费。尽管面临冷启动、状态管理和调试等挑战,Serverless架构仍凭借其高效性与可扩展性展现出广阔的应用前景。流行平台如AWS Lambda、Azure Functions等使其实施更为便捷。
|
2月前
|
网络协议
keepalived对后端服务器的监测方式实战案例
关于使用keepalived进行后端服务器TCP监测的实战案例,包括配置文件的编辑和keepalived服务的重启,以确保配置生效。
58 1
keepalived对后端服务器的监测方式实战案例
|
3月前
|
运维 数据安全/隐私保护 数据库管理
企业实战项目之服务器用户权限集中管理
企业实战项目之服务器用户权限集中管理
|
3月前
|
运维 前端开发 Serverless
Serverless痛点解决问题之将 WordPress 工程部署到函数计算中如何解决
Serverless痛点解决问题之将 WordPress 工程部署到函数计算中如何解决
45 1
|
3月前
|
存储 运维 Serverless
Serverless 支撑赛事转播问题之利用函数计算实现图片处理的实时性和成本节约如何解决
Serverless 支撑赛事转播问题之利用函数计算实现图片处理的实时性和成本节约如何解决
|
2月前
|
Ubuntu Linux 文件存储
一台UPS实现NAS、PC和服务器的自动关机
一台UPS实现NAS、PC和服务器的自动关机
|
3月前
|
弹性计算 运维 Serverless
揭秘ADB Serverless架构:如何实现无服务器计算的神奇魔法?
【8月更文挑战第27天】随着云计算的演进,Serverless架构作为一种新兴计算模式崭露头角。阿里云函数计算(简称ADB)提供了一种无需管理服务器即可运行代码的服务。本文通过案例探讨ADB Serverless模式的实现方式。首先介绍Serverless架构的基础概念,即事件驱动模型,使开发者仅需关注业务逻辑,减轻了基础设施构建与维护的负担。ADB采用分布式、无状态的设计,确保高可用性和弹性伸缩能力。以一个简单的Web应用为例,展示了如何利用ADB快速实现根据用户输入返回问候语的功能,突显出其简化开发流程、提高性能与可扩展性的优势。
49 0

热门文章

最新文章

相关产品

  • 函数计算