开始前准备
1.wordpress安装包(这个是必要的,即使安装typecho)下载好后解压
2.下载typecho最新版,请将下载好的typecho解压到fc-wordpress\fc-web-sqlite\.fun\nas\auto-default\fc-wp-sqlite\wordpress目录内
3.去开通阿里云的函数计算fc,region选择香港(不用备案)
4.开通文件存储nas,用来存储网站的所有文件
配置.env文件
获取AccessKey ID 和 AccessKey Secret,
在解压好的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
解析域名
修改index.php
修改fc-wordpress\fc-web-sqlite目录中index.php,将host值将‘host = "";`内的域名改成你已经解析到endpoint的域名
修改template.yml
1.修改该文件内的两处fc-wp-demo,随意修改名称。
2.修改fc-wordpress-domain内的DomainName,后面加上你自己的域名。比如
同步并部署
先安装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/月
日志服务
如果不需要日志服务可以直接删掉日志服务,此处可免费