基于阿里云 Serverless 函数计算搭建按量付费的 WordPress 网站

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Serverless 经过几年的发展,已经和传统服务器一样好用了。我最初接触 Serverless 是在 2020 年的云开发校园合伙人创造营上,当时我基于阿里云云开发平台部署了一个在线工具箱。

作者:刘天棋


本文选自 Serverless 函数计算征集令 活动


序言


Serverless 过几年的发展,已经和传统服务器一样好用了。我最初接触 Serverless 是在 2020 年的云开发校园合伙人创造营上,当时我基于阿里云云开发平台部署了一个在线工具箱。


1.png

Serverless 发展简史


网站背后的运行技术服务的发展就像人类的进化:物理服务器时代——云计算时代——无服务器化时代,但是有些老系统不能直接部署到 Serverless,必须进行一定的拆解,这无形之中增加了一道门槛。


本文我将介绍如何基于阿里云 Severless 函数计算 FC 搭建按量付费的 WordPress 网站。


简介

通过阿里云函数计算FC,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码。更棒的是,您只需要为代码实际运行消耗的资源付费 - 代码未运行则不产生费用。


下表是传统方式搭建服务和 Serverless 的对比:


2.png


准备事项


1. 阿里云函数计算 FC,可按量付费,有免费额度


2. 文件储存 NAS,可按量付费


3. 云数据库 RDS 版


4. 日志服务 SLS


在进行本文的操作前,需要先开通上述四项服务,并开通在同一地域的同一 VPC 下。


流程操作


NAS


1. 访问阿里云 NAS 控制台


2. 创建通用型 NAS 文件系统。在这里我选择华东 1(杭州)地域。


3.png


3. 系统已经自动创建了挂载点,所以我们无需再进行创建挂载点的操作。


4.png


阿里云函数计算 FC


1. 访问阿里云函数计算控制台


2. 在“概览”中进入刚才创建 NAS 服务时选择的地域。


5.png


3. 创建服务。需要选择允许访问 VPC 并且允许访问公网,选择好刚才创建 NAS 服务时使用的 VPC 和交换机,如果没有安全组,则需要新建安全组。


6.png


7.png


服务角色按默认选择。


8.png


4. 在函数的“服务详情”页面,找到“储存配置”选项,点击编辑。


9.png


5. 启用 NAS,并选择自动配置。


10.png


6. 回到函数管理界面,创建新函数,选择创建一个空白函数。


11.png


运行环境选择 php7.2,并勾选“处理 http 请求”。


12.png


配置触发器,请求方式全部勾选,最后点击创建。


13.png


7. 进入函数详情页面,编辑默认提供的代码为下面的这段代码。


14.png


getAttribute("requestURI");
$uriArr = explode("?", $uri); // default php / or /wp-admin/     
if (preg_match('#/$#', $uriArr[0]) && !(strpos($uri, '.php'))) 
{
$uriArr[0] .= "index.php";         
$uri = implode($uriArr);
     }     
$proxy    = $GLOBALS['fcPhpCgiProxy'];     
$root_dir = '/mnt/www';     //php script     
if (preg_match('#\.php.*#', $uri)) 
{         
$host   = "www.stgit.cn"; // 此处填写你的域名         
$resp   = $proxy->requestPhpCgi($request, $root_dir, "index.php", 
['HTTP_HOST' => $host, 'SERVER_NAME' => $host, 'SERVER_PORT' => '80'],             
['debug_show_cgi_params' => false, 'readWriteTimeout' => 60000]
);         
return $resp;
     } 
else {         // static files, js, css, jpg ...         
$filename = $root_dir . explode("?", $uri)[0];         
$filename = rawurldecode($filename);         
$handle   = fopen($filename, "r");         
$contents = fread($handle, filesize($filename));         fclose($handle);         
$headers = [
'Content-Type'  => $proxy->getMimeType($filename),   
'Cache-Control' => "max-age=8640000",             
'Accept-Ranges' => 'bytes',         
];         
return new Response(200, $headers, $contents);
     } 
}

8. 之后回到函数计算控制台,在高级功能—域名管理中配置自定义域名。


15.png


域名填写已经接入阿里云备案的域名,路由配置选择刚才的服务名称和函数名称,点击创建。注意:这里需要把域名解析到提供的内网 chame。


9. 上传 wordpress 程序


为了简便操作,本文通过开一台按量付费的 ECS 挂载 NAS 然后通过 SFTP 进行可视化操作来上传程序。


可通过类似下面的命令将 NAS 通过 NFS 的方式挂载至目录下。


mount -t nfs -o vers=4.0 16d3e4b609-cub21.cn-hangzhou.nas.aliyuncs.com:/ /mnt

17.png


10. 访问我们绑定的域名。


18.png


至此部署完成。


参考链接:


[1] 阿里云函数计算 FC:

https://www.aliyun.com/product/fc


[2] 阿里云 NAS 控制台

https://nasnext.console.aliyun.com/overview


[3] 阿里云函数计算控制

https://fcnext.console.aliyun.com/overview



阿里云 Serverless 近期热门活动


19.jpeg


2022 阿里云 Serverless Developer Meetup 杭州站火热报名中!


点击此处,立即报名!

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
人工智能 数据管理 大数据
阿里云数据库走向Serverless与AI驱动的一站式数据平台是一个很有前景和意义的发展方向
阿里云数据库走向Serverless与AI驱动的一站式数据平台是一个很有前景和意义的发展方向
34 2
|
9天前
|
监控 Serverless API
阿里云函数计算的工作原理与事件驱动模型密切相关
【4月更文挑战第17天】阿里云函数计算的工作原理与事件驱动模型密切相关
64 4
|
9天前
|
消息中间件 运维 Serverless
阿里云函数计算是一种FaaS(Function as a Service)云服务
【4月更文挑战第17天】阿里云函数计算是一种FaaS(Function as a Service)云服务
52 3
|
9天前
|
自然语言处理 Cloud Native Serverless
通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验
近日,通义灵码正式进驻函数计算 FC WebIDE,让使用函数计算产品的开发者在其熟悉的云端集成开发环境中,无需再次登录即可使用通义灵码的智能编程能力,实现开发效率与代码质量的双重提升。
95455 4
|
9天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
46 0
|
14天前
|
存储 安全 Serverless
用 Github Actions 自动部署阿里云函数计算 FC
介绍了如何配置阿里云函数计算(FC)与GitHub Actions集成以实现自动部署。首先在阿里云创建函数,然后在项目根目录创建`s.yaml`文件配置Serverless Devs。接着在GitHub仓库中设置 Secrets 存储阿里云账号信息,并创建名为`aliyun-fc-deploy.yaml`的工作流文件来定义GitHub Actions。当代码推送到`master`分支时,Actions会自动部署到函数计算。最后,成功配置后,提交代码会触发自动部署,并可在GitHub Actions和阿里云控制台查看部署状态。
406 3
|
18天前
|
弹性计算 前端开发 Java
使用阿里云 mqtt serverless 版本超低成本快速实现 webscoket 长链接服务器
使用阿里云 MQTT Serverless 可轻松实现弹性伸缩的 WebSocket 服务,每日成本低至几元。适用于小程序消息推送的 MQTT P2P 模式。前端需注意安全,避免 AK 泄露,采用一机一密方案。后端通过调用 `RegisterDeviceCredential` API 发送消息。示例代码包括 JavaScript 前端连接和 Java 后端发送。
169 0
|
24天前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
1月前
|
分布式计算 运维 大数据
阿里云 EMR Serverless Spark 版免费邀测中
阿里云 EMR Serverless Spark 版,以 Spark Native Engine 为基础,旨在提供一个全托管、一站式的数据开发平台。诚邀您参与 EMR Serverless Spark 版免费测试,体验 100% 兼容 Spark 的 Serverless 服务:https://survey.aliyun.com/apps/zhiliao/iscizrF54
399 0
阿里云 EMR Serverless Spark 版免费邀测中
|
1月前
|
消息中间件 编解码 运维
阿里云 Serverless 异步任务处理系统在数据分析领域的应用
本文主要介绍异步任务处理系统中的数据分析,函数计算异步任务最佳实践-Kafka ETL,函数计算异步任务最佳实践-音视频处理等。
175311 348

相关产品

  • 函数计算