「72变的云开发」serverless搭建几乎零成本的typecho博客

本文涉及的产品
简介: 如果放在前些年,博客最好的方式是租用一台服务器,用来搭建博客。冗余的性能造成了浪费,想和文章达到同配置的服务器更为昂贵,而serverless真正做到了按量付费。


开始前准备


1.wordpress安装包(这个是必要的,即使安装typecho)下载好后解压

2.下载typecho最新版,请将下载好的typecho解压到fc-wordpress\fc-web-sqlite\.fun\nas\auto-default\fc-wp-sqlite\wordpress目录内

2.安装nodejs和funcraf还有gitbash

3.去开通阿里云的函数计算fc,region选择香港(不用备案)

4.开通文件存储nas,用来存储网站的所有文件

配置.env文件

获取AccessKey ID 和 AccessKey Secret

image.png

获取阿里云账户id

image.png

在解压好的fc-wordpress/fc-web-sqlite/目录里面的.env_example文件重命名为.env,并按照以下提示修改配置

DEFAULT_REGION=cn-hongkong              //位置是香港
ACCOUNT_ID=16*********30               //阿里云账户ID
ENDPOINT=http://16********30.cn-hongkong.fc.aliyuncs.com          //阿里云账户ID.cn-hongkong.fc.aliyuncs.com  
ACCESS_KEY_ID=LT***********AN   
ACCESS_KEY_SECRET=Lg8c1*********1bL77n

解析域名


把个人域名解析到endpoint里面对应的网址

image.png


修改index.php


修改fc-wordpress\fc-web-sqlite目录中index.php,将host值将‘host = "";`内的域名改成你已经解析到endpoint的域名

image.png

修改template.yml


1.修改该文件内的两处fc-wp-demo,随意修改名称。

2.修改fc-wordpress-domain内的DomainName,后面加上你自己的域名。比如

image.png

同步并部署

先安装funcraf,打开安装好的gitbash。输入以下命令

npm install @alicloud/fun -g

在/root/fc-wordpress/fc-web-sqlite文件夹中,执行以下命令

fun nas init
fun nas info
fun nas sync 
fun deploy

配置完成


访问站点安装即可,如果要迁移数据库请翻到下面

funcraf命令(重要)

fun nas rm -r nas://fc-wp-mysql/mnt/auto/wordpress删除WordPress目录

fun nas cp nas:///mnt/auto/wordpress/ D: 复制NAS的WordPress目录到本地的D盘

typecho(新站)到此结束


如果需要迁移数据请看下面

typecho数据库迁移到serverless(包含本地初始化和不同数据库转换)

如果不需要迁移数据不要乱碰

本地初始化数据库

首先你的系统需要PHP环境,到https://windows.php.net/download/

下载,选择Thread Safe下的ZIP下载。然后解压到Windows/system32,省去配置环境

1.在php的文件夹下,复制一份php.ini-development文件重命名为php.ini,记事本打开。搜索extension_dir,把;extension_dir = "./"改为extension_dir = "./ext",分号;表示注释,需要去掉。搜索extension=pdo_sqlite,去掉注释。

3.修改hosts文件,把上面解析到endpoint的域名指向127.0.0.1,然后进fc-web-sqlite.fun\nas\auto-default\fc-wp-sqlite\wordpress目录下执行php -S 0.0.0.0:80命令本地安装好typecho和SQLite3数据库的链接,完成后在fc-wordpress\fc-web-sqlite\.fun\nas\auto-default\fc-wp-sqlite\wordpress\usrusr文件夹下看到一个.db的数据库文件,随意命名,回到上一级目录打开config.inc.php文件,找到定义数据库参数这一段,把它改为 'file' => '../usr/名字.db',。

4.复制一份config.inc.php文件改名为config.inc-sqlite3.php,打开它,把数据库的指向路径修改为 'file' => './usr/名字.db',,跟前面的相比少了个点号。

5.在打开index.php文件把config.inc.php替换为config.inc-sqlite3.php

数据迁移

首先下载并安装MysqlToSqlite(百度就有)

打开后填好连接信息,然后点ok

连上MySQL并设置好SQLite的保存位置后点击OK再选择All Table

然后选择需要转换的Typecho MySQL数据条,建议全选,免得出错;

如果中间提示需要添加字段那就用navicat 15 for sqlite给sqlite添加字段

最后要把原来usr文件夹所有东西复制到目前的usr文件夹,


重构搜索索引


因为serverless没法开重写功能,导致搜索不到文章了,研究了一下发现,我只要重新发布就可以搜索到了,所以我用

fun nas cp nas:///mnt/auto/wordpress/ D:把数据库给拿回来,用navicat15 for sqlite,新建一个查询三条命令

UPDATE typecho_contents SET type='post_draft'
UPDATE typecho_contents SET template=NULL
UPDATE typecho_contents SET password=NULL

运行并保存

执行fun nas sync

打开网站可以看到所有文章都到草稿箱了

再次打开navicat 15 新建查询

UPDATE typecho_contents SET type='post'

运行并保存

执行fun nas sync

打开网站搜索可用了

成本计算

函数计算

每月前 100 万次函数调用免费, 每月前 400000(GB*秒) 费用免费。公网流量0.5元/gb。

月访问五万次的网站一般每月不超过2元.

nas存储

低于1g的文件,不需要付费,超出1gb的1.85元/GiB/月

日志服务

如果不需要日志服务可以直接删掉日志服务,此处可免费


相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
消息中间件 弹性计算 运维
爆款游戏如何借助 RocketMQ Serverless,打造流畅体验并节省 98% 成本?
爆款游戏如何借助 RocketMQ Serverless,打造流畅体验并节省 98% 成本?
87151 3
|
5月前
|
运维 Serverless 云计算
云上开发新范式:Serverless 的必然与应然 | 云栖深度对话
云上开发新范式:Serverless 的必然与应然 | 云栖深度对话
|
6月前
|
监控 Serverless 测试技术
函数计算的开发
函数计算的开发
37 0
|
7月前
|
弹性计算 运维 监控
阿里云 Elasticsearch Serverless 全新发布,平均可省50%成本
阿里云 Elasticsearch Serverless 全新发布,平均可省50%成本,致力于为用户打造更低成本、弹性灵活、开放兼容、开箱即用的云上 Elasticsearch 使用体验。
1038 0
|
9天前
|
Cloud Native Serverless API
Serverless 成本再优化:Knative 支持抢占式实例
Knative 是一款云原生、跨平台的开源 Serverless 应用编排框架,而抢占式实例是公有云中性价比较高的资源。Knative 与抢占式实例的结合可以进一步降低用户资源使用成本。本文介绍如何在 Knative 中使用抢占式实例。
46633 2
|
17天前
|
弹性计算 前端开发 Java
使用阿里云 mqtt serverless 版本超低成本快速实现 webscoket 长链接服务器
使用阿里云 MQTT Serverless 可轻松实现弹性伸缩的 WebSocket 服务,每日成本低至几元。适用于小程序消息推送的 MQTT P2P 模式。前端需注意安全,避免 AK 泄露,采用一机一密方案。后端通过调用 `RegisterDeviceCredential` API 发送消息。示例代码包括 JavaScript 前端连接和 Java 后端发送。
166 0
|
2月前
|
人工智能 Serverless API
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
|
2月前
|
小程序 IDE Serverless
【经验分享】支付宝小程序serverless云开发拓荒
【经验分享】支付宝小程序serverless云开发拓荒
80 0
|
3月前
|
人工智能 Serverless API
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
7723 132
|
3月前
|
人工智能 Serverless API
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
为了帮助用户高效率、低成本应对企业级复杂场景,函数计算团队正式推出 Stable Diffusion API Serverless 版解决方案,通过使用该方案,用户可以充分利用 Stable Diffusion +Serverless 技术优势快速开发上线 AI 绘画应用,期待为广大开发者 AI 绘画创业及变现提供思路。
87316 4

相关产品

  • 函数计算