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

本文涉及的产品
.cn 域名,1个 12个月
函数计算FC,每月15万CU 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 基于阿里云Severless函数计算搭建按量付费的WordPress网站

序言


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

微信图片_20221227173533.png

“ServerLess发展简史”


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


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


简介

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


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


项目开发效率 传统方式搭建服务 函数计算方式
采购服务器等基础设施 需要 不需要
管理服务器等基础设施 需要 不需要
开发业务服务模块 需要 需要
部署业务服务模块 需要 需要,但是很简单,提供了很多工具
通过 nginx 搭建反向代理、https 和负载均衡 需要 不需要,通过阿里云 API 网关或函数 HTTP 触发器可以实现
搭建相关日志服务 需要 不需要,通过日志开关开启日志服务
配置安全访问规则 需要 不需要,自带基础安全访问配置,API 网关提供更多的配置
运维负担
开发效率 高,通常几天就能完成
Serverless 传统方式搭建服务
维护成本 维护成本低,无需管理服务器等基础设施,只需编写代码并上传,程序员从底层设备维护中解放出来,只考虑实际业务逻辑即可。 维护成本高,自行维护服务器,需要处理服务器宕机、服务器扩容等一系列底层琐碎的事情
可用性 可用性高,函数计算为用户准备弹性、可靠的计算资源,具有根据流量自动scale特性,对有明显波峰波谷的运用效果奇佳 服务器故障会对应用服务产生严重影响
费用 按需付费,只为实际使用的计算资源付费,代码未运行则不产生费用 需要支付服务器的费用,代码运行与否都要收费


准备


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

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

3.云数据库RDS版

4.日志服务SLS

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


流程

NAS

1.访问阿里云NAS控制台:https://nasnext.console.aliyun.com/overview

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

image.png

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

image.png

FC

1.访问阿里云函数计算控制台:https://fcnext.console.aliyun.com/overview


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

image.png


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

image.png

image.png

服务角色按默认选择。

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.png

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

image.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.之后回到函数计算控制台,在高级功能—域名管理中配置自定义域名。

image.png

域名填写已经接入阿里云备案的域名,路由配置选择刚才的服务名称和函数名称,点击创建。

需要把域名解析到提供的内网chame。


9.上传wordpress程序

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

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

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

image.png


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

image.png

至此部署完成。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
1月前
|
域名解析 网络协议 数据安全/隐私保护
阿里云轻量应用服务器搭建WordPress个人博客教程
阿里云轻量应用服务器搭建WordPress个人博客教程
|
6月前
|
域名解析 弹性计算 数据安全/隐私保护
阿里云ECS免费搭建WordPress个人博客网站
阿里云ECS免费搭建WordPress个人博客网站
705 2
阿里云ECS免费搭建WordPress个人博客网站
|
1月前
|
弹性计算 监控 安全
利用WordPress 模板建站,如果利用阿里云国际版获取网站高流量
利用WordPress 模板建站,如果利用阿里云国际版获取网站高流量
|
3月前
|
运维 前端开发 Serverless
Serverless痛点解决问题之将 WordPress 工程部署到函数计算中如何解决
Serverless痛点解决问题之将 WordPress 工程部署到函数计算中如何解决
45 1
|
3月前
|
弹性计算 关系型数据库 应用服务中间件
从零基础到博主大亨!一键解锁阿里云ECS,LNMP秒搭WordPress,你的个性博文帝国,今日崛起!
【8月更文挑战第5天】随着互联网技术的发展,个人博客成为技术爱好者和内容创作者分享知识的平台。阿里云ECS以其高性能和灵活性成为搭建博客的优选。本文指导你购买配置ECS,并安装CentOS 7。通过SSH登录后,更新系统并安装LNMP环境,包括Nginx、MariaDB、PHP。配置Nginx处理PHP请求,初始化数据库并设置WordPress数据库。接着下载WordPress,解压并设置权限。最后,通过浏览器完成安装向导。利用WordPress丰富的资源定制网站,开启个性化创作之旅。记得定期备份数据,利用ECS的扩展性支持网站成长。
67 4
|
5月前
|
运维 前端开发 Serverless
函数计算产品使用问题之wordpress应用模板在什么地方
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
关系型数据库 MySQL PHP
蓝易云 - WordPress建站可以用阿里云服务器吗?
具体的操作步骤包括购买和设置阿里云服务器,安装LAMP或LNMP环境,创建MySQL数据库,最后下载和安装WordPress。
61 2
|
5月前
|
存储 弹性计算 Serverless
函数计算产品使用问题之使用的是自定义域名并且已备案,出现“无法访问此网站”,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在使用阿里云函数计算部署网站时,网站打开不稳定如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
670 1
|
6月前
|
存储 Serverless 网络安全
Serverless 应用引擎产品使用之阿里云函数计算中的Web云函数可以抵抗网站对DDoS攻击如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。