Typecho 插件开发与服务器配置折腾记
需求背景
我使用的是 Typecho 1.2.1 版本博客,想开发一个插件实现以下功能:
编辑文章时上传图片的同时,自动同步上传一份到腾讯云 COS 存储桶,并且插入到文章中的图片地址自动替换为云存储的地址。
初始困境
Handsome 主题推荐的 GitHub 博主已停更,其推荐的插件在当前版本无法使用,只能基于他 7 年前的版本适配现在的 Typecho,整个过程就像在收拾一个烂摊子!
服务器配置难题
为了改进插件,需要在云服务器终端运行命令安装额外环境,却发现:
- 服务器自带的宝塔面板找不到入口
云服务器的 orcarerm 始终提示 3389 端口未开放(尽管面板已开放 3389 和 22 端口的 TCP 和 UDP)
外网探测您的实例「3389」端口未放通,可能会导致外网无法正常登录。
使用 PuTTY 连接时同样报错:
SSH connection failed: connect ECONNREFUSED xxx:3389
问题排查
一番捣鼓后发现:
- 云服务器的防火墙服务被禁用
- 服务器端的出入站规则中没有 SSH 22 端口的规则,只能手动创建
关键发现
今天突然意识到,这台服务器是 Windows Server 2012 R2 版本,价格便宜得可疑,会不会没有自带 SSH 服务?咨询后得到证实:
版本兼容性:Windows Server 2012 R2 及更早版本需手动下载 OpenSSH 安装包,不能直接通过「可选功能」安装。
一台 4 核 8G 的服务器居然没有预装 SSH,实在令人费解。更离谱的是,腾讯云的使用文档对此只字未提。
手动安装 OpenSSH 步骤
- 下载安装包:OpenSSH-Win64.zip
- 以管理员身份打开命令提示符(CMD),执行以下命令:
# 进入 OpenSSH 目录
cd "C:\Program Files\OpenSSH"
# 执行安装脚本
powershell -ExecutionPolicy Bypass -File install-sshd.ps1
# 设置服务自动启动
Set-Service -Name sshd -StartupType Automatic
# 启动服务
Start-Service -Name sshd
# 检查服务状态
Get-Service -Name sshd
# 备选配置命令
sc.exe config sshd start= auto
经过这两天的折腾,总算解决了服务器的 SSH 连接问题,接下来可以继续专注于插件开发了。