本项目是使用阿里云Serverless部署Wordpress的拓展,进一步确定了serverless部署PHP网站的原理

排查了半天还是不行,目前serverless对于我来说属于黑箱状态,个人猜测是在函数计算那边域名绑定出问题了,因为阿里也说了如果没绑定域名的话,响应变成下载。我明明绑定了域名,所有文件和操作和第一次一样,也变成下载了,大概率是函数计算那边响应出问题了。
解决了,原因大概是不能在本地执行php连接数据库?反正感觉很魔幻。
部署的很不稳。

成功率接近100%了,感谢钉钉群大佬们的帮助
建议阅读本文之前先阅读上一篇:


上文有的内容我就不重复说一遍了。

准备

部署Typecho的前期步骤和部署Wordpress一样
1.拥有使用wordpress、typecho经验
2.阿里云账号充点钱
3.拥有最基础的web知识
4.开通阿里云函数计算与文件存储服务NAS,不用你自己购买,后文会自动购买的,开通服务就行。
5.准备好域名(如果你用默认配置文件的话需要使用备案的域名),比如我的域名:coldark.cn。cname解析到阿里云函数计算节点域名。节点域名可以从官方文档获取。cname指向的地址是组合后的域名,比如:1213580079978440.cn-hangzhou.fc.aliyuncs.com
6.准备好nodejs与funcraf,funcraf可以使用npm install @alicloud/fun -g安装
7.安装好PHP环境
8.安装好git

获取文件

git clone https://github.com/wnark/fc-typecho.git

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

我已经根据Wordpress的原始项目修改了一下。

配置

我这里是使用的MySQL,我还没在Typecho上使用sqlite的经验,因此就用MySQL算了。

env

按照部署Wordpress的方式修改下.env文件,这个文件是保存你的账号信息,都一样。

初始化

cd /root/fc-typecho/fc-web-mysql
fun nas init
fun nas info

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

上传

执行:

cd /root/fc-typecho/fc-web-mysql
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-typecho/fc-web-mysql

index.php

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

template.yml

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

部署

执行

fun deploy

等待它自动开通服务,自动部署,部署完成后访问连接数据库就行了。

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

配置

正常配置数据库就行,下面的问题已修复。

typecho最新测试版已修复这个问题

连接数据库的时候会报错:

Warning: Cannot modify header information - headers already sent by (output started at /mnt/auto/typecho/install.php:204) in /mnt/auto/typecho/var/Typecho/Cookie.php on line 102

Warning: Cannot modify header information - headers already sent by (output started at /mnt/auto/typecho/install.php:204) in /mnt/auto/typecho/install.php on line 586

目前修复的努力失效了,建议导入配置好的typecho数据库后直接访问网站就行了。根据我搜到的资料是缺PHP组件,但没法装上去。

其他

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

总结

配置的过程中,我感觉serverless部署的过程和使用nginx/apache部署的方式差不多,就是需要阿里/大佬详细解释下每个参数的流程。目前来说在serverless部署typecho对于我来说和我最开始用nginx一样感觉是黑箱状态。
如果阿里说的自动扩容是真的话,serverless对于小公司来说作用比个人更大。毕竟个人的话有Oracle cloud这个永久免费的变态。总不至于像百亿补贴一样给用户送钱来和Oracle cloud竞争吧


参考:
安装Typecho卡在“确认您的配置,数据库配置”问题的终极解决方法

最后修改:2020 年 08 月 22 日 11 : 27 PM