前言
由于vercel免费用户仅只有1GB的运行内存(当然如果你有钱也可以支持一下官方,开个vip用户也可以),所以不可运行过大的占用内存的应用程序,有些主题可能会消耗过多内存导致一些功能失效或者直接停止,所以在使用前请对相关内容进行了解后在使用
如果你想使用wordpress的话,请自行摸索,因为我对php不是很了解 目前我使用的是hexo搭建静态博客(因为hexo自由度高,可定制度高、已于理解以及修改) 我还写了个hexo主题Hexo-Theme-MengD,欢迎大家前来观看(挑毛病、挑bug嘻嘻)
原文:https://blog.imlete.cn/article/Vercel-Deploy-Typecho.html 相信很多人会和我一样 what? Vercel 什么时候能部署 PHP 了?我怎么不知道?(我使用 Vercel 有一年时间了,我居然不知道,之前的 Vercel 文档白看了?)
在此感谢: am-abudu大佬的 Vercel 实例 随后就去查Vercel 文档,果然发现了能部署 PHP Vercel-PHP 地址:juicyfx/vercel-php 本文 Github 仓库: https://github.com/lete114/Vercel-Typecho
准备工作
- Github 账号
- Vercel 账号
- 下载 Typecho 程序(官网)
- 自己喜欢的 Typecho 主题(主题官网)
- 数据库(MySQL、PostgreSQL、SQLite)
正文
关于部署项目到 Vercel 有两种方式
- 使用 Vercel CLI 进行部署
- 使用第三方库进行拉去(GitHub、GitLab、Bitbucket)
我个人是比较喜欢使用 Vercel CLI 的,但在这里我为了照顾大家,我还是使用git push 到 Github 后再让 Vercel 来拉取的方式
- 创建 Github 仓库:Vercel-Typecho
- 本地解压 Typecho 程序
解压后会得到 bulid 目录内容如下 
Vercel 依赖
在 bulid 目录下新建vercel.json
{
"functions": {
"api/index.php": {
"runtime": "vercel-php@0.4.0"
}
},
"routes": [{ "src": "/(.*)", "dest": "/api/index.php" }]
}
在 bulid 目录下新建config.inc.php
<?php
define('__TYPECHO_SECURE__',true);
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
define('__TYPECHO_THEME_DIR__', '/usr/themes');
define('__TYPECHO_ADMIN_DIR__', '/admin/');
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);
require_once 'Typecho/Common.php';
Typecho_Common::init();
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
'host' => '数据库地址',
'user' => '数据库用户名',
'password' => '数据库密码',
'charset' => 'utf8mb4',
'port' => '3306',
'database' => '数据库昵称',
'engine' => 'MyISAM',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
在 bulid 目录下新建api/index.php
<?php
$file= __DIR__ . '/..'.$_SERVER["PHP_SELF"];
if(file_exists($file))
{
return false;
}
else
{
require_once __DIR__ . '/../index.php';
}
自定义主题
到 Typecho 官网下载自己喜欢的主题解压放到bulid/usr/themes/ 目录下即可(本文只提供部署教程,则使用默认主题) 
准备数据库
GearHost 数据库现已不可用 目前推荐: (我没用过)
- FreeDB
- ElephantSQL
数据库渠道有很多,你可以选择花钱买数据库,也可以白嫖(当然你不怕你文章丢失的话(白嫖有风险)) 我这里推荐一个平台,算是比较稳的,这个平台我用了差不多快一年了吧,记不太清了,但是速度不是很快、而且存储只有 5MB,我 hexo 博客文章有 70+文章,目前占用 400+kb,5MB 因该够写好几百篇的文章了 GearHost: GearHost
部署
上个步骤已经获取了数据库,将数据库信息填入bulid/confi.inc.php
最后克隆已经创建好的 Github 仓库: https://github.com/lete114/Vercel-Typecho 克隆后得到Vercel-Typecho 目录,且里面包含.git ,将bulid 里的全部文件及文件夹复制到Vercel-Typecho 目录下
git add .
git commit -m'Vercel-Deploy-Typecho'
git push
创建 Vercel 项目:Vercel-Typecho(该昵称可以不与 GitHub 仓库同名)
    
最后自己绑定域名,或者自己自定义域名,打开链接     
|