「72变的云开发」serverless搭建几乎零成本的typecho博客-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

「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/月

日志服务

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章