前言

相信很多人会和我一样 what? Vercel什么时候能部署PHP了?我怎么不知道?(我都用Vercel一年了,我居然不知道,之前看Vercel官方文档是白看了)
直到最近几天,我在HexoPlusPlus官方群

HexoPlusPlus:
      是一个基于CloudFlare WorkersCloudFlare KV技术的Hexo后端程序,目的是解决Hexo无后端带来的种种麻烦,支持但不限于Hexo等静态博客。(摘抄自官网)


博主评论:
      个人觉得这个项目是非常不错的,就如简介一样能使你的静态博客拥有后台,而无需本地生成、渲染即可达到和动态博客相同的效果
当然它不仅仅用于Hexo博客,也可以是Hugo等其他静态博客的使用
博主也用过一段时间(第一批用户),但我个人写文章的时候还是比较喜欢本地hexo s来预览内容,后来就很少使用了,但是无论是本地写文章还是HexoPlusPlus都可以,感兴趣的可以去体验一下

好了,就小小的给HexoPlusPlus推广(打广告)了一下,言归正传

我看到群主问:之前谁用Vercel部署Typecho成功了?
过了几分钟真的就有大佬过来回复了,于是我摸索了一会儿,果然成了
感谢: am-abudu大佬的Vercel实例

然后我就去查Vercel文档,果然发现了能部署PHP
Vercel-PHP地址:juicyfx/vercel-php
本文Github仓库: https://github.com/lete114/Vercel-Typecho

准备工作

  1. Github账号
  2. Vercel账号
  3. 下载Typecho程序(官网)
  4. 自己喜欢的Typechoz主题(主题官网)
  5. 数据库(MySQL、PostgreSQL、SQLite)

正文

关于部署项目到Vercel有两种方式

  1. 使用Vercel CLI进行部署
  2. 使用第三方库进行拉去(GitHub、GitLab、Bitbucket)

我个人是比较喜欢使用Vercel CLI的,但在这里我为了照顾大家,我还是使用git push到Github后再让Vercel来拉取的方式

  1. 创建Github仓库:Vercel-Typecho
  2. 本地解压Typecho程序
    解压后会得到bulid目录内容如下
    Typecho

Vercel依赖

在bulid目录下新建vercel.json

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

在bulid目录下新建config.inc.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?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' => '3306',
'database' => '数据库昵称',
'engine' => 'MyISAM',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

在bulid目录下新建api/index.php

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"];

自定义主题

到Typecho官网下载自己喜欢的主题解压放到bulid/usr/themes/目录下即可(本文只提供部署教程,则使用默认主题)
themes

准备数据库

数据库渠道有很多,你可以选择花钱买数据库,也可以白嫖(当然你不怕你文章丢失的话(白嫖有风险))
我这里推荐一个平台,算是比较稳的,这个平台我用了差不多快一年了吧,记不太清了,但是速度不是很快、而且存储只有5MB,我hexo博客文章有70+文章,目前占用400+kb,5MB因该够写好几百篇的文章了
GearHost: GearHost
具体注册就不多说了(需要科学上网,大陆IP会被拦截)
这个平台支持PHP程序,可以直接部署Typecho,而且还提供数据库,且数据库支持非本平台连接,我觉得速度不行

DataBase
DataBase
DataBase

部署

上个步骤已经获取了数据库,将数据库信息填入bulid/confi.inc.php

最后克隆已经创建好的Github仓库: https://github.com/lete114/Vercel-Typecho
克隆后得到Vercel-Typecho目录,且里面包含.git,将bulid里的全部文件及文件夹复制到Vercel-Typecho目录下

1
2
3
4
5
6
# 添加所有文件到暂存区
git add .
# 提交
git commit -m'Vercel-Deploy-Typecho'
# 推送到远程仓库
git push

创建Vercel项目:Vercel-Typecho(该昵称可以不与GitHub仓库同名)

Vercel-Typecho
Vercel-Typecho
Vercel-Typecho
Vercel-Typecho
Vercel-Typecho

最后自己绑定域名,或者自己自定义域名,打开链接
Vercel-Typecho
Vercel-Typecho
Vercel-Typecho
Vercel-Typecho
Vercel-Typecho

常见问题

  1. 在使用官方下载的1.1正式版部署时后进行安装会出现如下警告
    此问题博主也不知道如何解决,如果你已解决可以在评论区留言,我会将留言添加到此处
    config-init-error
  2. (目前已解决,可能与config.inc.php文件的配置有关,先已添加注释,这也可能是我的个人原因)进入后台样式缺失,要求使用https请求,可在安装的时候填写的的确是https,它为什么会出现该问题,可能是程序的原因,有或者其他原因我也不清楚,如果有人已解决可在评论区留言,我会将留言添加到此处
    Vercel-Typecho
文章作者: Lete乐特
文章链接: https://blog.lete114.top/article/Vercel-Deploy-Typecho.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lete乐特's Blog
  • alipay
  • wechat

评论