虽然阿里云有官方文档,但对于小白来说不太友好。因此我来写一篇保姆级教程吧。

请从头读到尾再部署,请不要一边部署一边看教程

准备

1.拥有使用wordpress经验
2.阿里云账号充点钱
3.拥有最基础的web知识
4.开通阿里云函数计算文件存储服务NAS,不用你自己购买,后文会自动购买的,开通服务就行。
5.准备好域名(如果你用默认配置文件的话需要使用备案的域名),比如我的域名:coldark.cn。cname解析到阿里云函数计算节点域名。节点域名可以从官方文档获取。cname指向的地址是组合后的域名,比如:1213580079978440.cn-hangzhou.fc.aliyuncs.com

安装环境

建议在Centos、Ubuntu上安装环境,我直接用国外的服务器安装算了,国内的网真的是一言难尽。我用的是appnode安装的,有可视化还行吧。
1.准备好nodejs与funcraf,funcraf可以使用npm install @alicloud/fun -g安装
2.安装好PHP环境
3.安装好git

获取文件

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

自己决定文件存放的位置,这个是在本地编辑一下,部署到函数后不需要了,假设git到/root/fc-wordpress,注意后文自行替换文件地址。

配置

我这里是使用的sqlite,如果需要使用MySQL建议参考官方文档。

env

配置env文件(我是使用的sqlite,因此进入的是sqlite目录,请根据自己情况配置,不要照搬)

cd /root/fc-wordpress/fc-web-sqlite
cp .env_example .env
nano .env

.env的内容解释:

DEFAULT_REGION=cn-hangzhou                                     ## 地域代号
ACCOUNT_ID=1213580079978440                                    ## 你的账号ID
ENDPOINT=http://1213580079978440.cn-hangzhou.fc.aliyuncs.com   ## 函数计算节点组合后的域名,也就是你在前文cname的域名
ACCESS_KEY_ID=LTAI4GAnWaj9QZtxLp6xNmeU                         ## 你的账号ACCESS_KEY_ID
ACCESS_KEY_SECRET=mUvXkTHw6RfJZlHgaJpKVkon7JenlI               ## 你的账号ACCESS_KEY_SECRET

以下内容非常重要

1.一定要创建ram用户,然后给予函数计算与nas的所有权限,而不要使用全局的ACCESS_KEY。
2.官方文档对.env的解释在我写这篇文章的时候还是有点混乱,看不懂的话就看我的解释就行。
3.目前别碰其他文件

初始化

开两个终端
终端1:

cd /root/fc-wordpress/fc-web-sqlite
fun nas init
fun nas info

如果上文给ram用户权限不够的话可能会报错,没事,给了权限再执行一次就行

终端2:

cd /root/fc-wordpress/fc-web-sqlite/.fun/nas/auto-default/fc-wp-sqlite/wordpress
php -S 0.0.0.0:80

在这里就像nginx启动了网站一样,如果你和我一样是在vps上弄的,开防火墙80端口,然后在你自己的电脑上指定hosts到vps的ip上,访问即可。(可能会提示缺组件,按照提示安装即可,这也是我为啥用面板,一键即可。)

正常访问后,注册下管理员账号,然后登录即可。可以更新下试试看。

上传

在终端2使用ctrl c终止运行。
执行:

cd /root/fc-wordpress/fc-web-sqlite
fun nas sync
fun 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

在这里,NAS作为网站的存储器。

部署

cd /root/fc-wordpress/fc-web-sqlite

index.php

修改index.php 内的 $host
$host = "hz.mofangdegisn.cn";内的域名改成你自己的域名

template.yml

修改template.yml
1.修改该文件内的两处fc-wp-demo,都需要替换下,建议变成fc-wp-coldark-cn这样配合你自己的域名。
2.修改fc-wordpress-domain内的DomainName,后面加上你自己的域名。比如DomainName: 'coldark.cn'

部署

执行

fun deploy

等待它自动开通服务,自动部署。

如果在最开始dns解析没设置的话会提示部署失败,设置好解析后再执行一次fun deploy就行

其他

1.删除之前为了测试的本地的hosts配置
2.重装服务器/删掉/root/fc-wordpress目录
3.删掉这次RAM子账号/取消权限。

注意事项

1.我没找到限频等防cc的配置,在api网关那也没
2.由于对外ip已被限定死了,因此无法通过CDN来隐藏IP,无法通过我之前的利用阿里云安全组作为硬件防火墙防御DDoS攻击
3.保护好自己的ACCESS_KEY
即使有了Serverless还是得有运维人员来维护Serverless


十分钟搭建基于 Wordpress 的 Serverless Web 应用

最后修改:2020 年 08 月 22 日 03 : 17 AM