ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

抽屉里的手机还能开博客?用 Typecho 和 cpolar 搭一台可远程访问的小服务器

抽屉里的手机还能开博客?用 Typecho 和 cpolar 搭一台可远程访问的小服务器 前言抽屉里的旧手机不一定只能当备用机。我手里的小米 MIX 2S 虽然不再承担日常通讯却还有 Wi-Fi、存储空间和完整的安卓系统拿它搭一个个人博客正好能把闲置设备变成随时可以打开的小网站。比起一上来研究复杂的服务器环境我更愿意先把事情拆开让手机跑起 Web 服务让 Typecho 真正读写数据库再解决人不在家时怎么访问。这样即使某一步出了问题也知道该回到手机、网站还是网络入口排查。尤其在手机和电脑之间来回操作时本机地址、局域网 IP 与公网域名各有用途提前分清楚就少走很多弯路。我用 KSWEB 在手机上准备 PHP、MySQL 和 Apache把 Typecho 源码放进htdocs先验证本机8000、数据库管理页8001和局域网访问。博客能打开之后再通过 Termux 安装 cpolar给手机上的8000提供公网入口。这里还有一个特别容易忽略的细节第一次打开公网地址时正文出现了页面样式却不见了原因并不在隧道而是 Typecho 的“站点地址”还指向旧入口。最后我会换成固定二级子域名blog01再安装 Joe 等主题并处理演示环境中的 PHP 版本兼容问题。整条流程以这台 MIX 2S 的操作为例不把一次访问成功夸大成手机永不掉线。1. 先让旧手机具备长期运行的基本条件这套演示使用的是小米 MIX 2S、Android 9、8GB RAM / 256GB 存储不要求 Root。准备条件给出的下限是 Android 7.0推荐 2GB 以上内存、2GB 以上可用空间ARM64 设备更合适。手机要保持 Wi-Fi 连接长期使用还得留意供电、机身温度和电池状态关闭电池优化可以减少后台被清理的机会却不能替代真正的设备稳定性检查。需要的文件包括termux.apk、KSWEB.apk、typecho-master.zip以及准备用到的主题butterfly、Cuckoo、GreenGrapes、Joe。示例素材提供在 123 云盘提取码是1314https://www.123865.com/s/3jOKVv-9JNzH?pwd1314先安装 KSWEB 和 Termux。以这台小米手机为例进入“设置 → 电量和性能 → 应用配置”将两个应用的后台策略改成无限制不同品牌的具体入口可能不同目的是别让 Web 服务和隧道进程在锁屏后轻易被系统清理。随后打开 KSWEB在设置中启用“自动启动”和“锁定 WIFI”。这一步解决的是应用层的常驻设置之后还要分别确认 Apache 和 cpolar 是否实际在运行。2. 用 KSWEB 先跑通手机上的 Web 环境KSWEB 里需要用到四项PHP运行 TypechoMySQL保存文章、用户和评论Apache处理网页请求PhpAdmin则用于图形化管理数据库。示例环境中 PHP、Apache、MySQL 已经随 KSWEB 安装先启动 Apache再用手机浏览器打开http://localhost:8000出现默认测试页就说明本机的8000Web 入口可用。接下来在 KSWEB 中安装PhpAdmin按界面提示确认后Apache 会重新启动状态页出现8001再打开数据库管理页http://localhost:8001这里两个端口的用途不要弄混8000放博客8001是数据库管理页面。后面通过 cpolar 对外提供的是博客端口并不需要顺手把数据库管理页也开放出去。3. 把 Typecho 文件放对位置并让电脑能打开手机博客解压typecho-master.zip把源码目录里的文件复制到 KSWEB 的站点根目录htdocs而不是把外层压缩包直接放进去。完成以后重新访问本机8000正常情况下会出现 Typecho 的安装向导。http://localhost:8000我更习惯在电脑大屏幕上填写数据库和管理员信息因此还要让同一局域网中的电脑能够访问手机。把 KSWEB 中 Apache 的监听 IP 从localhost改为0.0.0.0这台 MIX 2S 的示例局域网 IP 是192.168.50.114在电脑浏览器里打开http://192.168.50.114:8000这样做只改变了局域网访问方式。localhost永远是当前正在操作的那台设备在手机上它指向手机在电脑上则指向电脑。后面如果从电脑打开手机服务要使用手机实际的局域网 IP不要机械地把所有localhost原样粘过去。4. 建数据库、完成初始化先确认博客真的能用Typecho 的安装向导需要一个 MySQL 数据库。返回PhpAdmin管理页http://localhost:8001示例使用root用户密码留空进入页面。这个空密码只是在复现演示环境不能把它当作长期运行的安全设置尤其不要把8001当成普通博客页面向公网发布。点击“新建”数据库名称填写xy字符集和排序规则使用示例中的utf8mb4_bin然后创建数据库。数据库名称可以自定义但 Typecho 安装向导中的名称必须与实际创建的一致。回到 Typecho点击“我准备好了开始下一步”按页面填写数据库连接信息。初始化页面和管理员账户设置依次如下进入到初始化配置页面,配置MySQL数据库,参考如下图安装完成后浏览器再次打开博客首页http://localhost:8000能看到默认的“欢迎使用 Typecho”文章才说明 Apache、PHP、Typecho 和数据库连接已经形成基本闭环。下一步不用急着换主题先解决外部网络能否访问以及访问之后图片、CSS 是否会正确加载。5. Termux 安装 cpolar把手机的 8000 端口送到公网Typecho 此时已经在 MIX 2S 上运行cpolar 只承担网络入口的职责外面的浏览器经由隧道访问手机上的8000网站和数据库仍然运行在这台手机里。先打开 Termux等待首次环境初始化完成。创建软件源目录mkdir-p$PREFIX/etc/apt/sources.list.d加入示例使用的 cpolar 软件源并更新仓库#添加cpolar下载源echodeb [trustedyes] http://termux.cpolar.com termux extras$PREFIX/etc/apt/sources.list.d/cpolar.list#更新仓库pkg update安装 cpolarpkginstallcpolar安装 Termux 服务管理组件完成安装后关闭 Termux再重新进入让服务环境生效pkginstalltermux-services启动 cpolar并为该服务设置启用状态sv up cpolar# 设置开机自启sv-enable cpolar需要分清sv-enable cpolar管理的是 Termux 服务不等于已经解决 Android 设备重启后所有应用、Wi-Fi 和后台进程自动恢复的问题。长期运行时还需要结合手机的后台限制和实际重启测试确认。现在先在手机浏览器打开 cpolar 管理页使用已注册的账号登录http://localhost:92006. 第一次公网访问正文有了样式为什么没了进入 cpolar 后创建指向 Typecho8000的 HTTP 隧道。在线列表里显示隧道名typecho-8000并出现 HTTP、HTTPS 两条公网地址先用 HTTPS 地址从外部测试。注册好账号后输入账号信息登录到后台管理页面这次遇到的情况很有代表性页面内容能显示样式却没有跟上。这说明隧道已经把请求送到 Typecho但不能据此判断整站资源地址都正确。Typecho 的“站点地址”仍指向旧地址时CSS、图片等资源可能继续从原地址加载。打开 Typecho 管理后台http://localhost:8000/admin在“系统设置”里把“站点地址”改为这次生成的完整 HTTPS 公网地址保存后再刷新公网页面。不要把此处当成 cpolar 的域名配置它是Typecho 自己用来生成网页链接和资源路径的站点配置。如果使用随机域名后续地址发生变化还要同步修改 Typecho 的“站点地址”否则很容易再次出现网页能开、样式缺失或跳回旧地址的情况。真正长期使用时固定域名的价值就在于少改这一项设置。7. 换成固定二级子域名 blog01再同步网站地址在 cpolar 的“预留 → 保留二级子域名”里选择地区China Top示例名称为blog01。名称具有唯一性实际以账号中保留成功的结果为准。回到“隧道管理 → 隧道列表”找到typecho-8000并编辑域名类型改成“二级子域名”填写刚保留的名称后更新。在线隧道列表中可以看到公网地址切换成固定二级子域名形式。再回 Typecho 的“系统设置”把“站点地址”从此前的随机地址更新为固定地址并重新打开页面确认内容与样式一致。在这套示例里公网入口是blog01对应的 cpolar 域名它并没有把博客搬到云服务器更不能单凭地址固定就断言旧手机永远在线。手机的供电、网络、KSWEB、Termux 和隧道仍然都要正常工作。8. 博客能用了再挑适合的 Typecho 主题站点已经有稳定入口之后再处理外观会更省心。这里展示了默认主题以及 Joe、GreenGrapes、Typecho-Butterfly、Cuckoo 四款主题。不同主题会改变布局和功能呈现先看实际展示效果再决定哪个更适合自己的内容。默认主题JoeGreenGrapesTypecho-ButterflyCuckoo以 Joe 为例将准备好的主题复制到 Typecho 的htdocs/usr/themes目录。注意解压后的层级示例中出现了两层Joe文件夹需要将真正的主题目录调整到正确位置否则后台可能识别不到。进入管理后台可以使用手机本地地址也可以通过已配置的公网域名访问# 内网本地网址http://localhost:8000/admin# 或者访问穿透出来的公网域名也可以的https://blog01.cpolar.top/admin/点击“更换外观”进入“网站外观”后找到 Joe点击“启用”。9. 主题显示报错再查 PHP 版本兼容启用 Joe 后首页虽然切换了外观却出现了错误提示。这不是公网隧道的问题应该回到主题和 PHP 的兼容性上排查。示例中的 KSWEB 默认 PHP 版本为8.2.6而这套 Joe 主题在演示环境中改用 PHP 7.4 后才正常显示。按 KSWEB 页面切换到7.4.23再重新访问博客验证这只能说明该主题在这套演示环境下的兼容性问题得到解决不代表所有主题都必须使用 PHP 7.4也不代表老版本 PHP 适合无限期公开运行。要长期运营网站还应关注主题更新、PHP 的安全维护状态以及站点和数据库备份。总结从抽屉里的旧手机到可以通过浏览器访问的 Typecho 博客最关键的不是某个“一键安装”按钮而是每一层都要实际验证KSWEB 的8000能显示网站8001能管理数据库Typecho 能完成初始化Termux 中的 cpolar 能把请求送到手机。公网第一次只出现正文、不显示样式也恰好提醒我网络连通和网站配置正确是两回事固定域名启用后还必须同步更新 Typecho 的“站点地址”。这台 MIX 2S 还可以继续做轻量站点和练习环境但长期使用不能只看访问截图。供电与后台保活、数据库凭据、PHP 和主题兼容、站点备份都和能否持续运行有关。让旧设备重新发挥价值的前提是知道它负责什么也知道它可能在哪一层停下来。
返回列表