Vercel通过Community Runtimes也可以像replit那样调用其它语言环境,我们可以利用这个在vercel上部署PHP等环境,从而支持typecho等程序的运行。见Vercel Community Runtimes 文档

准备

免费Cloudflare D1数据库适配中…
参考资料:

注意:使用Vercel部署typecho博客可以省去一个服务器,在一定程度上也能避免网络攻击,只要买一个数据库服务即可使用,也能省几块钱吧。

步骤

  1. 将typecho源码解压到项目目录
  2. 在项目根目录下新建配置文件vercel.json,调用php环境
1
2
3
4
5
6
7
8
9
10
{
"functions": {
"api/*.php": {
"runtime": "vercel-php@0.4.4"
}
},
"routes": [
{ "src": "/(.*)", "dest": "/api/index.php" }
]
}
  1. 在项目根目录下新建api/index.php
    api/index.php是php程序的入口,它应该放在api文件夹中
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$file= __DIR__ . '/..'.$_SERVER["PHP_SELF"];

if(file_exists($file))
{
return false;
}
else
{
require_once __DIR__ . '/../index.php';
}
#echo $_SERVER["PHP_SELF"];
  1. 修改项目根目录下的install.php文件,删掉if (!$writeable)中的!,跳过/usr/uploads目录权限检查(vercel项目文件都无法通过typecho在线修改)
1
2
3
4
-   if (!$writeable) {
+ if ($writeable) {
$errors[] = _t('上传目录无法写入, 请手动将安装目录下的 %s 目录的权限设置为可写然后继续升级', $uploadDir);
}
  1. 将项目上传到vercel,通过vercel的测试域名访问安装页面,填写数据库信息,当然vercel无法直接修改文件,typecho安装页面会根据你填写的数据生成配置文件内容,手动在本地项目根目录下新建文件config.inc.php,填入typecho网页生成的内容,重新上传即可配置成功。

或者直接使用我配置好的项目 typecho_vercel 一键部署到,直接从第5步开始,默认环境PHP 8.0.x。**