标签: vercel

  • 基于Nextjs的说说程序

    TL;DR

    点这里看效果: https://ss.banzhuanriji.com

    发布,查看


    一代人有一代人的QQ空间要踩 XD ,可是QQ空间怎么少的了说说呢。而且发长文会带动一切RSS订阅用户,偶尔想当个动态/朋友圈发的话,太打扰人了。

    所以我想到了两种方案:

    • RSS避免某个分类的文章,把这个分类当做说说来发。但我想了想,似乎在function里加一些方法直接控制数据更好用一点,而且样式制作可以直接在CSS里修改,不影响其他文章样式内容。所以wordpress的方案又分为两种
      • 不经过RSS的分类
      • 在wordpress的function中创建独立的方法内容
    • 创建一个独立的说说页面

    但是目前wordpress的数据库已经够复杂,冗余过于夸张了。并且之后如果我不希望使用wordpress的话,如何迁移?所以决定使用独立的方案。

    第一想到的就是目前已经存在的有没有可用的。第一个想到的就是面条大佬的BroadcastChannel ,把TG频道做数据来源。实话实说挺好用的。不过样式不可控,可能需要自己修改,且一些TG的内容样式不支持。所以我就采用了Nextjs+neon数据库的方案写了这个程序。

    功能

    • 浏览内容,分页
    • 鉴权登录
    • 发布内容

    忽略了内容修改的功能,因为要做修改的话可能需要在首页做登录判断,然后在布局上做一些按钮预留。想了想暂时不做这个了

    特色

    如果可以成为特色的话…

    • 全部白嫖,白嫖!
    • 结构超级简单
    • Markdown支持

    预览

    下载

    如果你有兴趣可以查看这里: https://ss.banzhuanriji.com

    暂时没有提供下载,等我完善之后在github上发出来XD。比较感兴趣的话也可以联系我,我会发给你一份源码: m#hoytzhang.com 或者在文章下面留言 ;D

  • 免费静态托管服务对比

    在当今的网络环境中,静态网站托管服务变得越来越流行,尤其是对于开发者和博客作者来说。本文将介绍三种流行的免费静态网站托管服务:Vercel、GitHub Pages 和 Cloudflare Pages,并对它们的免费服务进行比较。

    Vercel

    Vercel 是一个专注于前端开发的托管平台,提供快速、可靠的静态网站托管服务。它的主要特点包括:

    • 全球 CDN:Vercel 在全球范围内拥有多个 CDN 节点,确保网站的快速加载。
    • 自定义域名:支持用户使用自定义域名,并提供自动部署功能。
    • 构建限制:每月带宽限制为 100GB,构建次数和构建时长也有限制,但整体上对个人用户来说相对宽松。
    • 速度:在国内访问速度较快,通常比 GitHub Pages 和 Cloudflare Pages 更具优势。

    GitHub Pages

    GitHub Pages 是 GitHub 提供的静态网站托管服务,适合开发者和开源项目。其特点包括:

    • 稳定性:作为全球最大的代码托管平台,GitHub Pages 的稳定性相对较高。
    • 自定义域名:支持用户使用自定义域名。
    • 访问速度:在国内访问速度一般,偶尔会出现访问问题。
    • 限制:每月流量限制为 100GB,单个文件大小限制为 100MB,仓库大小建议少于 5GB。

    Cloudflare Pages

    Cloudflare Pages 是 Cloudflare 推出的静态网站托管服务,旨在提供快速和安全的网站托管。其特点包括:

    • 全球 CDN:同样拥有全球 CDN 节点,确保快速加载。
    • 自定义域名:支持最多 10 个自定义域名。
    • 构建限制:每月可构建 500 次,文件数量限制为 2万,单个文件大小不得超过 25MB。
    • 速度:与 GitHub Pages 相似,但在国内的访问速度和稳定性一般。

    免费服务对比

    在比较这三种服务时,可以从以下几个方面进行分析:

    1. 访问速度

      • Vercel 的访问速度在国内表现最佳,通常比 GitHub Pages 和 Cloudflare Pages 更快。
      • GitHub Pages 和 Cloudflare Pages 的速度相似,但 GitHub Pages 的稳定性更好。
    2. 自定义域名支持

      • 三者均支持自定义域名,但 Cloudflare Pages 对域名数量有上限(最多 10 个)。
    3. 构建和流量限制

      • Vercel 每月带宽限制为 100GB,构建次数和时长有限制。
      • GitHub Pages 每月流量限制为 100GB,文件和仓库大小也有相应限制。
      • Cloudflare Pages 每月可构建 500 次,文件数量和大小限制较为严格。
    4. 适用场景

      • Vercel 适合需要快速加载和高稳定性的个人博客或项目。
      • GitHub Pages 适合开源项目和开发者,尤其是对百度收录有需求的用户。
      • Cloudflare Pages 适合需要使用 Cloudflare CDN 的用户,但在国内的表现可能不如 Vercel。

    结论

    综合来看,Vercel 是一个非常适合个人博客和前端项目的托管平台,尤其是在国内访问速度方面表现突出。GitHub Pages 则是一个稳定的选择,适合开源项目和开发者。Cloudflare Pages 虽然提供了强大的 CDN 支持,但在国内的访问速度和稳定性相对较弱。根据个人需求选择合适的平台,将有助于提升网站的访问体验。


    如果你想试一下你所在的地区访问各服务的速度,你可以使用以下数据

    无域名,平台部署测试域名访问

    域名访问,由Cloudflare进行DNS解析,无CDN

    以上引用内容来自:https://github.com/hoytzhang/static-pages-test
    你可以使用 https://www.itdog.cn/http/ 来进行访问对比

  • 在vercel上部署typecho

    TL;DR

    通过vercel第三方库来运行php程序

    效果展示

    展示不了一点,我发现部署几天后开始变得非常卡,不知道为啥

    所以我推荐你每天定时deploy一下,会好很多

    一,注册需要的账号

    你需要注册以下账号

    • github
    • vercel
    • 一个免费或者你自己搭建的mysql数据库

    关于数据库,不推荐使用国内的免费数据库,因为vercel访问太慢了
    或许你可以尝试db4free,或者一些免费空间提供的数据库

    二,操作步骤

    1. 创建git仓库

    在github创建一个仓库,注意这个仓库需要是private的,也就是私密的仓库。然后clone到本地。下面为了方便,假设仓库名为blog

    2. 下载typecho

    下载地址:https://typecho.org/download

    3. 把typecho解压到仓库文件夹内

    此时文件应该存放在根目录

    4. 新建api文件夹,然后在api文件夹下创建index.php文件

    其中index.php文件的内容如下

    <?php
    $file= __DIR__ . '/..'.$_SERVER["PHP_SELF"];
    
    if(file_exists($file))
    {
       return false;
    }
    else
    {
        require_once __DIR__ . '/../index.php';
    }
    #echo $_SERVER["PHP_SELF"];

    5. 在仓库中创建vercel.json

    内容如下

    {
      "functions": {
        "api/index.php": {
          "runtime": "vercel-php@0.7.3"
        }
      },
      "routes": [{ "src": "/(.*)", "dest": "/api/index.php" }]
    }

    6. 在根目录创建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' => '3306',
      'database' => '数据库名',
      'engine' => 'MyISAM',
    ), Typecho_Db::READ | Typecho_Db::WRITE);
    Typecho_Db::set($db);

    7. 注释掉会阻挡操作的内容

    打开根目录下的install.php文件,注释或者删除773-775行,注释的内容大概如下。

        // if (!$writeable) {
            // $errors[] = _t('上传目录无法写入, 请手动将安装目录下的 %s 目录的权限设置为可写然后继续升级', $uploadDir);
        // }

    这里如果没有删除,可能会无法初始化数据库

    8. 上传代码,在vercel中编译,注意提前绑定域名

    9. 第一次打开会报错

    提示Database Query Error。这时你需要在你的域名||vercel提供的免费域名后添加/install.php,然后按照步骤操作。

    这里如果你没有执行第7步的操作,可能会报错,建议修改之后重新提交

    三,注意事项

    1. 过长的等待时间会触发vercel报错,提示This Serverless Function has timed out. 这时你或许可以考虑更换数据库
    2. 注意看第7点
    3. 一些函数官方说支持,但是会有奇怪的问题
    4. 上传二进制文件和直接修改文件的功能就别想了,在仓库中操作吧
    5. 暂时想不到了