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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
文件存储 NAS,50GB 3个月
.cn 域名,1个 12个月
简介: 基于阿里云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 架构模式
目录
相关文章
|
14天前
|
人工智能 Java Serverless
阿里云函数计算助力AI大模型快速部署
随着人工智能技术的快速发展,AI大模型已经成为企业数字化转型的重要工具。然而,对于许多业务人员、开发者以及企业来说,探索和利用AI大模型仍然面临诸多挑战。业务人员可能缺乏编程技能,难以快速上手AI模型;开发者可能受限于GPU资源,无法高效构建和部署AI应用;企业则希望简化技术门槛,以更低的成本和更高的效率利用AI大模型。
73 12
|
6天前
|
弹性计算 Cloud Native Serverless
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
|
2月前
|
人工智能 弹性计算 运维
触手可及:阿里云函数计算助力AI大模型的评测
阿里云推出的面向AI服务器的功能计算(Functional Computing, FC),专为AI应用提供弹性计算资源。该服务支持无服务器部署、自动资源管理和多语言支持,极大简化了AI应用的开发和维护。本文全面评测了FC for AI Server的功能特性、使用体验和成本效益,展示了其在高效部署、成本控制和安全性方面的优势,并通过具体应用案例和改进建议,展望了其未来发展方向。
185 4
|
2月前
|
XML 搜索推荐 机器人
五个 WordPress 插件可提高网站参与度
五个 WordPress 插件可提高网站参与度
|
2月前
|
缓存 弹性计算 应用服务中间件
如何使用 Wordpress?托管, 网站, 插件, 缓存
如何使用 Wordpress?托管, 网站, 插件, 缓存
|
2月前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
|
7月前
|
安全
SiteGround如何设置WordPress网站自动更新
iteGround Autoupdate功能会自动帮我们更新在他们这里托管的所有WordPress网站,这样做是为了保证网站安全,并且让它们一直保持最新状态。他们会根据我们选择的设置自动更新不同版本的WordPress,包括主要版本和次要版本。在每次自动更新之前,他们都会为我们的网站做一个完整的备份,这样如果有什么问题,我们可以轻松地恢复到之前的状态。在本文中,我们将介绍如何在SiteGround中设置WordPress网站自动更新。
557 0
SiteGround如何设置WordPress网站自动更新
|
5月前
【wordpress教程】wordpress博客网站添加非法关键词拦截
有的网站经常被恶意搜索,站长们不胜其烦。那我们如何屏蔽恶意搜索关键词呢?下面就随小编一起来解决这个问题吧。
89 1
|
2月前
|
关系型数据库 MySQL 数据库连接
如何处理WordPress网站提示“建立数据库连接时出错”
如何处理WordPress网站提示“建立数据库连接时出错”
|
7月前
|
PHP
菊子曰备份Wordpress网站的博客内容出错的解决办法(原创)
菊子曰备份Wordpress网站的博客内容出错的解决办法(原创)
533 2