为什么用Vercel?
快速部署:Vercel是一个serverless平台,可以快速部署各种类型的应用程序,而且无需担心服务器的配置和管理问题。
自动构建:Vercel支持自动构建,只需要在Github或Gitlab上提交代码,Vercel就会自动构建和部署应用程序。
免费托管:Vercel提供免费的托管服务,可以免费托管静态网站、单页应用程序和服务器端渲染应用程序,并且没有流量限制。
CDN加速:Vercel使用全球CDN加速,可以提高应用程序的访问速度和稳定性。
移动端优化:Vercel支持移动端优化,可以自动适配不同的移动设备和屏幕尺寸,让应用程序在移动端展示更加优美。
支持多种语言和框架:Vercel支持多种编程语言和框架,如React、Vue、Next.js、Gatsby等,可以满足不同开发者的需求。
安全可靠:Vercel提供了高级的安全功能,如SSL证书、DDoS防护、安全扫描等,可以保障应用程序的安全性和可靠性。
什么是Railway?
Railway是一个基于Docker的云原生应用托管平台,可以让开发者轻松地将应用部署到云端。它支持多种编程语言和框架,如Node.js、Python、Ruby等,同时也支持多种数据库和缓存服务,如MySQL、PostgreSQL、Redis等。开发者可以通过简单的命令行操作,快速部署和管理自己的应用程序。
Railway还提供了一些有用的功能,如自动扩展、自动备份、SSL证书、日志管理等,可以帮助开发者更好地管理和维护自己的应用程序。此外,Railway还提供了一个应用市场,开发者可以在市场中找到各种有用的应用程序和服务,如Wordpress、Ghost、Discourse等,以及各种API服务,如短信、邮件、推送等。
总之,Railway是一个功能强大、易于使用、灵活扩展的云原生应用托管平台,可以帮助开发者更好地构建、部署和管理自己的应用程序。
1、首先基于Railway创建数据库
点击 Start a New Project;

选择 Provision MySQL;

点击Connect 下滑,找到Available Variables,这里就是你数据库的信息,复制保存相关信息;

2、配置 Typecho
下载Typecho,点击正式版下载;


解压下载下来的压缩包;

编辑
install.php
,定位到第773行至775行,把这3行注释掉(前面加个#);

添加
vercel.json
;
{
"functions": {
"api/index.php": {
"runtime": "vercel-php@0.5.2"
}
},
"routes": [{ "src": "/(.*)", "dest": "/api/index.php" }]
}
创建
api
目录并在目录下添加index.php
;
<?php
$file= __DIR__ . '/..'.$_SERVER["PHP_SELF"];
if(file_exists($file))
{
return false;
}
else
{
require_once __DIR__ . '/../index.php';
}
#echo $_SERVER["PHP_SELF"];
创建
config.inc.php
;
<?php
/**
* Typecho Blog Platform
*
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
* @license GNU General Public License 2.0
* @version $Id$
*/
/** 开启https */
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__);
/** 载入API支持 */
require_once 'Typecho/Common.php';
/** 程序初始化 */
Typecho_Common::init();
/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
'host' => '数据库地址',
'user' => '数据库用户名',
'password' => '数据库密码',
'charset' => 'utf8mb4',
'port' => '数据库端口号',
'database' => '数据库名称',
'engine' => 'MyISAM',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
注意,定义数据库参数的位置,就是Railway创建的数据库信息,填入并保存!
3、配置 Vercel
通过 npm 安装 Vercel CLI;
npm -g install vercel

登录,命令行输入 vc login,选择GitHub;


点开这个链接,如果出现下图,说明登录成功;


接着在命令行输入 vc,按照提示一步步Yes;

现在打开你的Vercel,你会发现刚刚创建的项目已经出现了;

4、绑定域名
因为Vercel 部署分配的子域名被墙了,所以需要绑定我们自己的域名
点击 View Domains;

添加一个子域名,例如我的域名是lihail.cm,我添加一个typecho.lihail.cn,点击Add;

打开你的域名管理后台:DNS 解析 DNSPod,例如我是腾讯云购买的域名,输入主机记录=Name;记录类型=Type;记录值=Value;最后点击保存;

接下来返回Vercel ,你会发现,已经配置成功,点击打开分配的地址:typecho.lihail.cn;

如果地址中出现下面的界面,说明部署成功了;

5、安装 Typecho
在地址栏后面加上
/install.php
例如:typecho.lihail.cn/install.php;


确认安装,设置用户名密码,继续安装;

到这里就说明已经安装成功,点击进入后台页面和博客页面,就可以开始写你的博客了;



默认主题不是很好看,可以在主题模板选择自己的主题进行安装。
以上内容详细介绍了如何利用Vercel和Railway两个云平台来部署Typecho动态博客,让您的博客更加高效和稳定。通过使用Vercel的自动部署功能,您可以轻松地将博客代码上传到Vercel的服务器上,实现自动更新和快速部署。而Railway则提供了强大的数据存储和管理功能,让您的博客数据更加安全可靠。通过这种方式,您可以快速构建一个具有高性能和可靠性的博客平台,为读者提供更好的阅读体验。