51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Vercel 免费托管 Typecho 博客

应 bill 小朋友的需求分享如何使用 Vercel 免费托管 Typecho 博客教程。因杜老师近期出差时间紧张,没有精力细致整理排版,但确保可成功部署,需要的小伙伴可以参考,如有建议可在评论区中留言!

写在前面 {#写在前面}

Typecho 是由 type 和 echo 两个词合成的,来自于开发团队的头脑风暴。Typecho 基于 PHP 开发,支持多种类型的数据库,是款内核强健﹑扩展方便﹑体验友好﹑运行流畅的轻量级开源博客程序。

Vercel 是一个用来部署前端应用的云平台,但也可以用来构建轻量级的事件驱动,并部署到它的全球边缘网络。很多小伙伴喜欢使用 Vercel 部署博客,但大家可能不知道,Vercel 还支持 PHP 源码的部署。今天我们就用 Vercel 免费部署 Typecho 博客!

准备工作 {#准备工作}

  1. Typecho 非最新版本源码「1.2.0 版会检测目录是否能写入,推荐使用 这个 源码,感谢小伙伴的提醒」

  2. GitHub 账号及相关工具「推荐用 GitHub Desktop」

  3. MySQL 或其它类型数据库的托管平台「本文用 FreeDB 演示」

  4. Vercel 的账号「推荐用 GitHub 账号登录」

操作步骤 {#操作步骤}

在 FreeDB 申请免费 MySQL 数据库:

在 Typecho 源码目录下新建文件 config.inc.phpvercel.jsonapi/index.php 等文件,效果如下:

其中 config.inc.php 文件的内容如下「注意 host/user/password/database 请根据实际信息修改」

|------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?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' => 'sql.freedb.tech', 'port' => 3306, 'user' => 'freedb_dusays', 'password' => 'sPyT&R#5NyFPSnP', 'charset' => 'utf8mb4', 'database' => 'freedb_dusays', 'engine' => 'MyISAM', ), Typecho_Db::READ | Typecho_Db::WRITE); Typecho_Db::set($db); |

vercel.json 文件的内容如下:

|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 | { "functions": { "api/index.php": { "runtime": "vercel-php@0.4.0" } }, "routes": [{ "src": "/(.*)", "dest": "/api/index.php" }] } |

api/index.php 文件的内容如下:

|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 | <?php $file= __DIR__ . '/..'.$_SERVER["PHP_SELF"]; if(file_exists($file)) { return false; } else { require_once __DIR__ . '/../index.php'; } |

在 GitHub Desktop 新建项目,并上传 Typecho 源码:

在 Vercel 导入刚新建的项目,部署后即可通过域名访问 Typecho 安装页面:

访问 Vercel 提供的域名,记得在域名结尾添加 /install.php

写在最后 {#写在最后}

杜老师首先要提醒使用这种方式的小伙伴,用于短期体验折腾没有问题,长期的话建议还是用服务器托管。

该种方式源码端的变更「例如上传文件」无法同步至 GitHub 仓库,这就会造成数据的丢失。

赞(4)
未经允许不得转载:工具盒子 » Vercel 免费托管 Typecho 博客