之前的博客和梯子部署在同一台机器上,梯子被封,博客也一起挂掉了。最近又想用 vervel 托管 typecho ,数据库使用supabase的postgres数据库,参考网上的教程一直没成功,postgres 一直提示不支持,向 vercel-php 提 issue 之后,官方给了响应,因此有了这篇文章,记录如何低成本拥有自己的博客程序。

概述

此指南为在Vercel上运行Typecho博客系统,使用Supabase作为PostgreSQL数据库。

当前配置

Vercel配置

  • 使用 vercel-php@0.7.4 运行时
  • 所有请求路由到 api/index.php
  • 支持PHP 7.4+

数据库配置

  • 使用Supabase PostgreSQL数据库
  • 采用PDO PostgreSQL驱动
  • 支持SSL连接
  • 使用环境变量管理敏感信息

部署步骤

1. 准备Supabase数据库

  1. 在Supabase控制台创建新项目
  2. 获取数据库连接信息:

    • 主机地址
    • 端口号
    • 用户名
    • 密码
    • 数据库名

2. 初始化数据库表

在Supabase的SQL编辑器中执行 install/Pgsql.sql 文件中的SQL语句,创建Typecho所需的表结构。

3. 下载代码并配置vervel环境变量

git clone https://github.com/sam8877/typecho-vercel.git

在typecho-vercel目录下新建文件,名称为 .env,内容如下,请替换为自己的数据库配置

DB_HOST=your-supabase-host
DB_PORT=6543
DB_USER=your-supabase-user
DB_PASSWORD=your-supabase-password
DB_NAME=postgres

4. 部署到Vercel

# 安装Vercel CLI
npm i -g vercel

# 登录Vercel
vercel login

# 部署项目
vercel --prod

5. 完成安装

部署完成后,访问您的Vercel域名,Typecho会自动跳转到安装页面。按照安装向导完成配置。

注意事项

文件上传限制

Vercel是无服务器环境,不支持传统的文件上传。如果需要文件上传功能,建议:

  1. 使用外部存储服务(如AWS S3、Cloudinary)
  2. 开发插件来处理文件上传到外部存储