首页 » PHP教程 » php函数盘算faq技巧_一元建站基于函数计算 wordpress 构建 serverless 网站

php函数盘算faq技巧_一元建站基于函数计算 wordpress 构建 serverless 网站

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

干系参考文档: https://yq.aliyun.com/articles/640912

1.1 DEMO 概述

php函数盘算faq技巧_一元建站基于函数计算  wordpress 构建 serverless 网站

DEMO 示例效果入口: http://hz.mofangdegisn.cn账号: fc-test-user密码: fc-test-pwdDEMO 示例工程地址: fc-wordpress

1.2 办理方案

php函数盘算faq技巧_一元建站基于函数计算  wordpress 构建 serverless 网站
(图片来自网络侵删)

如上图所示, 当多个用户通过对外供应的 url 访问web做事的时候时候,每秒的要求几百上千都没有关系, 函数打算平台会自动伸缩, 供应足够的实行实例来响运用户的要求, 同时函数打算供应了完善的监控举动步伐来监控您的函数运行情形。

1.3 Serverless 方案与传统自建 web 方案比拟

函数打算完全用度详情:

每月前 100 万次函数调用免费, 每月前 400000(GB秒) 用度免费, 函数的内存可以设置为 128M 或者 256M, 因此对付一个一个月访问量低于 100 万次的网站, 该项是免费的对付低本钱的网站, 假设一个月的产生的公网流量为 1GB, 0.8元NAS, US$0.06/GB/Month, 网站大小为 50M, 纵然按 1G 打算, 0.42元RDS mysql 最基本的单机版本, 25元/月

函数打算计费 | NAS 定价

如上所述, 在低本钱网站领域, 函数打算具有十分明显的本钱上风,同时还保持了弹性能力,往后业务规模做大往后并没有技能切换本钱(可能须要做的只是改换一个更强的关系型数据库), 同时财务本钱增长合营预支费也能保持平滑。
低本钱网站变成高可用高性能网站如丝般顺滑。

函数打算运行 PHP 框架事理

在详细操作支配之前, 先大略梳理一遍 函数打算运行 PHP 框架事理

2.1 传统做事器 PHP 运行事理

事理示意图

A simple nginx conf

从上面事理示意图我们可以看出,Web 做事器根据 conf 中 location将 PHP 脚本交给 php-fpm 去解析,然后将解析后的结果返回给 client 端

2.2 FC 驱动 PHP 工程事理

函数打算的实行环境实例相称于传统 web 做事的 Apache/Nginx用户函数相称于实现 Apache/Nginx 的 conf 中 location用户将 Web 网站支配在 NAS,然后挂载 NAS 到函数的实行环境, 比如下面代码中 /mnt/auto 目录对付 WordPress 入口函数代码便是这么大略: index.php个中函数打算为用户供应了一个 $GLOBALS['fcPhpCgiProxy'] 工具用来和 php-fpm 进行交互,对

PHP 工程中的 php 文件进行解析,该工具供应了两个主要的接口:

requestPhpCgi

requestPhpCgi($request, $docRoot, $phpFile = \"大众index.php\公众, $fastCgiParams = [], $options = [])$request: 跟 php http invoke 入口的参数同等$docRoot: Web 工程的根目录$phpFile: 用于拼接 cgi 参数中的 SCRIPT_FILENAME 的默认参数$fastCgiParams: 函数打算内部只管即便根据 $request给您布局 default cgi params, 但是如果您不是想要的,可以利用$fastCgiParams覆盖一些参数 (reference: cgi)$options: array类型,可选参数, debug_show_cgi_params 设为 true ,会打印每次要求 php 解析时候的 cgi 参数, 默认为 false ;readWriteTimeout 设置解析的韶光, 默认为 5 秒

如果您有兴趣, 可以理解下函数打算 PHP Runtime:

PHP 入口函数PHP 实行环境案例操作步骤

准备条件

有一个域名, 比如 abc.com, 并将域名 CNAME 解析到 函数打算(FC) 对应的 region

如您想在杭州的 region 支配 wordpres 网站, 则将 abc.com CNAME 解析到 12345.cn-hangzhou.fc.aliyuncs.com, 个中 12345 是您的 accountId

3.1 安装最新的 Fun 工具

安装版本为8.x 最新版或者10.x 、12.x nodejs安装 funcraf

3.2 Clone 工程

git clone https://github.com/awesome-fc/fc-wordpress.git

3.3 根据须要利用的数据库进入不同的目录

复制 .env_example 文件为 .env, 并且修正 .env 中的信息为自己的信息

如果利用 mysql 数据库, 参考章节 3.3.1

如果利用 sqlite3 数据库, 参考章节 3.3.2

3.3.1 利用 mysql 数据库

进入 目录 fc-wp-mysql

fun nas initfun nas info

fun nas init: 初始化 NAS, 基于您的 .env 中的信息获取(已有知足条件的nas)或创建一个同region可用的nas

如果你没有修正 templata.yml 中的配置 service名字, 那么则可以进入下一步; 如果有修正, 会在当前目录天生新的目录 .fun/nas/auto-default/{serviceName} (fun nas info 可以列出新的目录), 将默认目录下的 .fun/nas/auto-default/fc-wp-mysql/wordpress 的wordpress目录拷贝到 .fun/nas/auto-default/{serviceName} 下, 同时可以删除目录 .fun/nas/auto-default/fc-wp-mysql/wordpress

上传 wordpress 网站到 NAS

fun nas syncfun nas ls nas:///mnt/auto/

fun nas sync: 将本地 NAS 中的内容(.fun/nas/auto-default/fc-wp-mysql)上传到 NAS 中的 fc-wp-mysql 目录

fun nas ls nas:///mnt/auto/: 查看我们是否已经精确将文件上传到了 NAS

3.3.2 利用 sqlite3 数据库

进入 目录 fc-wp-sqlite

fun nas initfun nas info

fun nas init: 初始化 NAS, 基于您的 .env 中的信息获取(已有知足条件的nas)或创建一个同region可用的nas

如果你没有修正 templata.yml 中的配置 service名字, 那么则可以进入下一步; 如果有修正, 会在当前目录天生新的目录 .fun/nas/auto-default/{serviceName} (fun nas info 可以列出新的目录), 将默认目录下的 .fun/nas/auto-default/fc-wp-sqlite/wordpress 的wordpress目录拷贝到 .fun/nas/auto-default/{serviceName} 下, 同时可以删除目录 .fun/nas/auto-default/fc-wp-sqlite/wordpress

本地完成安装过程, 初始化 sqlite3 数据库在目录 .fun/nas/auto-default/fc-wp-sqlite/wordpress 中输入命令:

php -S 0.0.0.0:80修正 host 文件,添加 127.0.0.1 hz.mofangdegisn.cnlinux/mac : vim /etc/hostswindows7: C:WindowsSystem32driversetc

个中 hz.mofangdegisn.cn 是您预先准备的域名

通过浏览器输入 hz.mofangdegisn.cn, 这个时候没有mysql数据库设置页面,完成 wordpress 安装过程

成功安装往后, 这个时候, .fun/nas/auto-default/fc-wp-sqlite/wordpress/wp-content 下面该当有一个 database 的目录, ls -a 查看, 该当有 .ht.sqlite 这个 sqlite3 数据库文件

回退 host 文件的修正

注: 中间修正 host 的目的是初始化 sqlite3 数据库的时候, base site url 是提前准备的域名, 而不是 127.0.0.1

上传 wordpress 网站到 NAS

fun nas syncfun nas ls nas:///mnt/auto/

fun nas sync: 将本地 NAS 中的内容(.fun/nas/auto-default/fc-wp-sqlite)上传到 NAS 中的 fc-wp-sqlite 目录

fun nas ls nas:///mnt/auto/: 查看我们是否已经精确将文件上传到了 NAS

3.4 支配函数到FC平台

接下来将函数支配到云平台:

修正 index.php 中的 $host 中的值修正 template.yml LogConfig 中的 Project, 任意取一个不会重复的名字即可修正 template.yml 自定义域名为自己提前准备好的域名实行 fun deploy

登录掌握台 https://fc.console.aliyun.com,可以看到service 和 函数已经创建成功, 并且 service 也已经精确配置。

通过浏览器打开自己之前配置的域名, 比如本例中的 hz.mofangdegisn.cn

mysql 版本数据库, 可以直接跟传统的 wordpress 一样,直接进入安装过程sqlite3 版本数据库, 由于之前已经完成初始化,可以直接进入网站首页或网站后台FAQ

Q1: 函数打算能开拓高性能高可用网站吗?

A: 可以, 只要连接的数据库性能足够, 有必要再合营预留实例肃清冷启动就足够高 qps 的 web 网站了。

Q2: 利用低本钱 sqlite3 版本的网站, 冷启动第一次打开很慢怎么办?

A: 用一个 timer trigger 的函数 keep warm

Q3: 利用低本钱 sqlite3 版本的网站, 能支持多大的qps?

A: 由 sqlite3 数据库性能决定, 这边有一些压测结果:

每次压力增大时候, 都有些冷启动,韶光慢点,但是支持从压测结果来看支持 50 QPS 是没有疑问的, 是足够支持一些中小网站的。

Q3: 利用其他措辞基于函数打算开拓 serverless 网站可以吗?

A: 可以, 比如 python: https://yq.aliyun.com/articles/603249 , 或者直策应用 custom runtime, 内置了 java、python 和 node, Custom Runtime 用户手册

作者:rsong

本文为云栖社区内容,未经许可不得转载。

标签:

相关文章