ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Typecho+Linux+宝塔面板零基础部署实战指南

Typecho+Linux+宝塔面板零基础部署实战指南 1. 项目概述为什么选Typecho Linux 宝塔面板这个组合我第一次在客户现场部署Typecho是2019年夏天。一台刚上架的阿里云轻量应用服务器4核8G系统选的是CentOS 7.6——不是因为情怀而是当时客户运维团队只熟悉这套环境。没用Docker没碰Kubernetes也没折腾Nginx手动编译就老老实实装了宝塔面板然后点几下鼠标把Typecho跑起来了。三年后回头看这个看似“保守”的选择反而成了我复用率最高的建站方案中小型企业官网、技术团队博客、独立开发者作品集、甚至高校实验室的项目展示页只要不需要高并发评论、不搞电商交易、不接微信支付SDKTypecho配宝塔Linux就是稳、快、省心。核心关键词——Typecho、Linux、宝塔面板——不是随便堆砌的标签而是三层精准匹配的技术栈Typecho是轻量级PHP博客程序的“减法典范”它不带后台编辑器、不内置邮件推送、不搞多用户权限树但数据库只用一张表存文章安装包压缩后不到500KBLinux是底层运行环境的“确定性保障”没有Windows Server那种服务依赖链断裂就全盘崩溃的风险一个systemctl restart php就能切回健康状态而宝塔面板则是把这两者之间那层“命令行恐惧”彻底抹平的桥梁——它不替代Linux而是把chmod 755、chown www:www、php-fpm reload这些动作封装成带进度条的按钮和带颜色提示的配置项。适合谁来参考这篇如果你是刚考完RHCSA想练手的真实运维新人或是前端转全栈时被LNMP环境配置劝退三次的开发者又或是小公司里既要写代码又要当网管的CTO这篇就是为你写的。它不讲“Typecho源码如何Hook插件机制”也不教“宝塔面板二次开发API”更不分析“Linux内核调度器对PHP-FPM子进程的影响”。它只解决一件事从你拿到一台干净的Linux服务器开始到浏览器里打开https://yourdomain.com看到Typecho欢迎页为止中间每一步该敲什么命令、点哪个按钮、填什么参数、防什么坑——全部给你列清楚且每一步都经我亲手验证过至少7个不同版本的宝塔6.9到7.20、4种Linux发行版CentOS 7/8、Ubuntu 20.04/22.04和3类Typecho稳定版1.2.0到1.3.0。很多人问“Typecho现在还值得用吗”我的回答很直接如果你需要一个能扛住日均3000PV、支持Markdown写作、插件生态足够应付SEO优化和统计埋点、且整站备份只需打包一个文件夹导出一个SQL的博客系统Typecho就是当前最平衡的选择。它不像WordPress那样臃肿也不像Hexo那样每次更新都要本地生成再上传——它是真正在服务器上“活”着的动态博客。而宝塔面板就是让这个“活”的过程变得像安装微信一样简单。下面我们就从零开始把这套组合真正落地。2. 整体架构设计与方案选型逻辑2.1 为什么不用Docker或一键脚本先说结论Docker部署Typecho在生产环境里是给自己埋雷而所谓“一键脚本”90%是把宝塔面板安装流程压缩成.sh文件本质还是宝塔。我见过太多客户被“Docker-compose三行启动Typecho”的宣传语吸引结果上线两周后遇到两个致命问题一是MySQL容器重启后Typecho缓存目录权限错乱首页白屏但错误日志为空二是宝塔自带的防火墙规则和Docker的iptables规则打架导致SSL证书自动续期失败。这两个问题排查起来要翻三套文档——Docker官方、Typecho社区、宝塔论坛最后发现根源竟是docker run时没加--restartalways和-v挂载路径权限没设对。而“一键脚本”呢我拆过不下20个标榜“全自动部署Typecho”的Shell脚本它们的共同套路是先curl -O下载宝塔安装包执行sh install.sh再wget下载Typecho最新版解压改权限导入SQL最后echo 部署完成。问题在哪它把宝塔当成黑盒完全跳过面板里的PHP版本选择、MySQL字符集设置、网站SSL配置这些关键环节。结果就是Typecho后台进不去因为PHP缺少mbstring扩展文章中文标题乱码因为MySQL默认字符集是latin1HTTPS打不开因为脚本没调用宝塔的Let’s Encrypt接口。这些都不是脚本能自动判断的必须人眼确认。所以我的方案非常明确放弃所有“黑盒式”自动化用宝塔面板作为可视化操作中枢把每一步配置都暴露在界面上。这样做的好处有三点第一所有操作可追溯——宝塔日志里记录了每次点击“添加网站”、“安装PHP”、“设置SSL”的时间戳和参数第二故障可隔离——如果网站挂了你能立刻区分是Typecho代码问题、PHP配置问题还是Nginx规则问题第三交接无障碍——新同事入职看一眼宝塔面板的“网站”列表和“软件商店”里的PHP版本5分钟就能上手维护。2.2 Linux发行版怎么选CentOS还是Ubuntu这是新手最容易纠结的问题。网上教程五花八门有人说“CentOS稳定”有人说“Ubuntu新功能多”还有人吹“Debian最精简”。我实测过四种组合结论很现实对Typecho这种纯PHP应用来说发行版差异几乎为零真正影响体验的是宝塔面板的兼容性和后续维护成本。先看数据宝塔官方支持列表里CentOS 7/8、Ubuntu 18.04/20.04/22.04、Debian 9/10/11都在“推荐”行列。但实际部署中我发现三个隐藏差异CentOS 7宝塔适配最成熟PHP 7.4安装成功率100%但EOL停止维护后安全补丁只能靠宝塔自己打存在滞后风险CentOS 82021年底已停止维护宝塔虽仍支持但部分扩展如Imagick编译失败率高达40%不推荐新项目Ubuntu 20.04LTS版本宝塔PHP 8.0支持完善但默认防火墙ufw和宝塔的防火墙模块偶尔冲突需手动关闭ufwUbuntu 22.04当前最新LTS宝塔7.20起全面适配PHP 8.1性能提升明显但MySQL 8.0默认启用caching_sha2_password认证插件Typecho连接时需额外配置charset utf8mb4。我的建议很务实新服务器一律选Ubuntu 22.04 LTS老服务器维持CentOS 7即可。理由很简单Ubuntu 22.04的内核更新更勤对NVMe SSD、ARM架构如树莓派4B支持更好而CentOS 7虽然老旧但宝塔为其做了大量向下兼容连systemctl命令都能自动映射到service稳定性经过千万次验证。至于网上吵翻天的“国产Linux发行版”像统信UOS、麒麟Kylin它们底层仍是Debian或CentOS宝塔也出了专用安装包但Typecho部署流程和Ubuntu完全一致——毕竟Typecho只认PHP和MySQL不认发行版Logo。2.3 宝塔面板免费版够用吗专业版值不值得买这是客户问得最多的问题。答案分两层功能层面免费版100%够用商业层面专业版某些插件确实值回票价。先看免费版能干什么添加网站、创建数据库、安装PHP/MySQL/Nginx、设置SSL证书、管理FTP、定时备份、文件编辑——这些Typecho运行所需的全部基础能力免费版全都有。我统计过一个标准Typecho站点95%的操作都在免费功能区完成。比如SSL证书宝塔免费集成Let’s Encrypt自动续期比自己写cron脚本靠谱得多再比如数据库管理phpMyAdmin界面比命令行mysql -u root -p直观十倍导入导出SQL一点即成。那专业版哪些插件值得买我只认两个“防火墙”和“网站监控报表”。前者能精确拦截CC攻击比如设置“单IP每秒请求超过10次即封禁”这对防止Typecho评论区被刷垃圾链接至关重要后者能生成月度流量TOP10文章报表帮你直观看到哪篇技术干货带来了最多外链。其他插件如“WordPress防爆破”、“Java项目管理”对Typecho毫无意义。提示网上流传的“宝塔面板免费使用专业版插件”方法本质是修改面板源码或替换JS文件属于违反《宝塔软件许可协议》的行为。我亲眼见过客户因使用破解版导致面板升级后整个网站配置丢失重装耗时6小时。记住宝塔的商业逻辑很清晰——基础功能免费保用户基数增值插件收费保研发投入。你花318元/年买专业版换来的不是功能而是官方技术支持响应速度工作日2小时内、漏洞修复优先级高危漏洞24小时热补丁和配置错误一键诊断——这些隐性价值远超插件本身。2.4 Typecho版本怎么选1.2.0还是1.3.0Typecho官方GitHub仓库里目前有两个活跃分支master对应1.3.0测试版和stable对应1.2.0正式版。很多教程推荐“直接下最新版”但我坚持用1.2.0原因有三第一稳定性验证周期1.2.0发布于2021年12月至今已稳定运行超28个月所有主流插件如Links友链、Views阅读统计、CommentToMail邮件通知都完成了兼容性测试而1.3.0虽新增了“后台主题切换”和“Markdown实时预览”但截至2024年6月仍有3个常用插件未适配强行升级会导致后台空白。第二PHP版本兼容性1.2.0完美支持PHP 7.2~8.1而1.3.0要求PHP最低版本为7.4且在PHP 8.2下存在json_last_error_msg()函数弃用警告——这虽不影响功能但会污染错误日志增加排查难度。第三数据库迁移成本1.2.0到1.3.0的数据库结构变更极小仅增加table.contents.slug字段但升级脚本需手动执行SQL。我试过5次自动升级2次失败失败原因全是ALTER TABLE语句在低配服务器上超时。而1.2.0的安装包解压即用连install.php都不用跑——你只需把config.inc.php里数据库信息填对访问域名就能进后台。所以我的操作是永远下载Typecho官方GitHub Release页面的typecho-1.2.0-18.7.18-release.tar.gz绝不碰master分支的ZIP包。这个包经过CI/CD流水线全量测试SHA256校验值官网公示安全性有保障。至于网上那些“Typecho美化版”、“集成百度统计版”全是第三方魔改代码审计成本远高于自己装原版插件得不偿失。3. 核心部署步骤与实操细节解析3.1 Linux系统初始化5个必做动作拿到一台全新Linux服务器以Ubuntu 22.04为例别急着装宝塔。先做这五件事能避免80%的后续故障第一更新系统并安装基础工具sudo apt update sudo apt upgrade -y sudo apt install -y curl wget vim git unzip net-tools注意net-tools包含ifconfig命令宝塔某些检测脚本会调用它unzip用于解压Typecho安装包很多镜像默认不装。第二关闭Swap交换分区针对SSD服务器sudo swapoff -a sudo sed -i /swap/d /etc/fstab理由Typecho是IO密集型应用频繁读写缓存会加速SSD磨损。我实测过关闭Swap后Nginx响应时间平均降低12ms且内存占用更稳定——宝塔面板本身会智能管理PHP-FPM进程内存无需Swap兜底。第三配置时区和时间同步sudo timedatectl set-timezone Asia/Shanghai sudo systemctl enable systemd-timesyncd sudo systemctl start systemd-timesyncdTypecho的发布时间、评论时间戳都依赖系统时间。曾有个客户因时区设成UTC导致文章发布时间比实际晚8小时SEO收录全乱。第四创建专用部署用户非rootsudo useradd -m -s /bin/bash typecho sudo usermod -aG www typecho sudo passwd typecho宝塔默认网站根目录属主是www用户组。创建typecho用户并加入该组后续用SFTP上传文件时权限天然匹配避免chown -R www:www的重复操作。第五开放必要端口仅限宝塔sudo ufw allow 8888 # 宝塔面板端口 sudo ufw allow 80 # HTTP sudo ufw allow 443 # HTTPS sudo ufw enable注意宝塔安装脚本会自动配置防火墙但Ubuntu默认启用ufw必须手动放行否则面板打不开。千万别用ufw allow OpenSSH——这会开放22端口增加暴力破解风险SSH登录应通过密钥Fail2ban双重防护不在本文展开。完成这五步执行reboot重启服务器。这不是形式主义而是确保内核模块加载、服务注册、权限生效的必要环节。我见过太多人跳过重启结果宝塔安装后PHP无法启动查半天才发现systemd服务单元没重载。3.2 宝塔面板安装与基础配置宝塔官网提供两种安装方式脚本一键安装和手动编译。无条件选择脚本安装因为手动编译在Ubuntu 22.04上极易因Python版本冲突失败。执行官方命令以宝塔7.20为例curl -o install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh sudo bash install.sh安装过程约3-5分钟期间会自动安装Nginx 1.22、MySQL 5.7、PHP 7.4等组件。安装完成后终端会输出类似Bt-Panel: http://192.168.1.100:8888 username: admin password: xxxxxxxx此时别急着打开浏览器。先做三件事第一修改面板默认端口和密码登录面板后立即点击右上角“面板设置” → “安全”将端口改为8899避开常见扫描端口密码用openssl rand -base64 12生成16位随机串。这是底线安全否则你的服务器24小时内就会出现在黑客的SSH爆破列表里。第二禁用不必要的软件进入“软件商店”找到“Apache”、“Pure-FTPd”、“Memcached”全部点击“卸载”。Typecho不需要FTP服务用SFTP更安全也不需要Memcached缓存用PHP OPcache足够Apache和Nginx共存会抢80端口。第三PHP版本选择与扩展配置在“软件商店” → “PHP-7.4” → “设置” → “安装扩展”勾选以下7个扩展opcache必须提升PHP执行速度mbstring必须处理多字节字符串中文支持基石gd必须生成缩略图xml必须RSS订阅依赖curl必须插件调用外部APIzip必须后台一键升级需要exif推荐读取图片EXIF信息实操心得fileinfo扩展看似无关紧要但Typecho上传图片时会用它检测MIME类型。我曾因漏装此扩展导致用户上传.webp图片失败错误提示却是“文件过大”——实际是MIME检测返回空值被误判为非法格式。所以宁可多装不可少装。配置完扩展点击“重载服务”。此时PHP状态页http://yourdomain.com/phpinfo.php应显示所有扩展状态为enabled。3.3 创建网站与数据库3个关键参数在宝塔面板左侧菜单点击“网站” → “添加站点”填写以下信息域名填你已解析好的域名如blog.example.com。若本地测试可填localhost但必须在/etc/hosts里加127.0.0.1 localhost。根目录保持默认/www/wwwroot/blog.example.com别手贱改成/var/www/html——宝塔的权限模型是基于/www路径设计的。PHP版本选7.4Typecho 1.2.0最稳组合。创建数据库勾选“创建数据库”用户名自动生成如blog_123456密码由宝塔随机生成16位含大小写字母数字。提交后宝塔会自动创建目录、数据库、Nginx配置文件。此时别急着上传Typecho先做数据库初始化进入“数据库” → 找到刚创建的库 → “管理” → “phpMyAdmin”执行以下SQLSET NAMES utf8mb4; CREATE TABLE IF NOT EXISTS typecho_contents ( cid int(10) unsigned NOT NULL AUTO_INCREMENT, title varchar(200) DEFAULT NULL, slug varchar(200) DEFAULT NULL, created int(10) unsigned DEFAULT 0, modified int(10) unsigned DEFAULT 0, text longtext, order int(10) unsigned DEFAULT 0, authorId int(10) unsigned DEFAULT 0, template varchar(32) DEFAULT NULL, type varchar(16) DEFAULT post, status varchar(16) DEFAULT publish, password varchar(32) DEFAULT NULL, commentsNum int(10) unsigned DEFAULT 0, allowComment tinyint(1) DEFAULT 1, allowPing tinyint(1) DEFAULT 1, allowFeed tinyint(1) DEFAULT 1, parent int(10) unsigned DEFAULT 0, PRIMARY KEY (cid), KEY slug (slug), KEY created (created) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;这段SQL的作用是强制数据库使用utf8mb4字符集避免Emoji和四字节中文乱码。宝塔创建的数据库默认字符集是utf8实际是utf8mb3Typecho安装时不会主动修正必须人工干预。提示执行完SQL后点“SQL”标签页上方的“清空查询”按钮否则下次进phpMyAdmin会自动执行这段SQL报错“表已存在”。3.4 Typecho安装包上传与配置Typecho官方安装包下载地址https://github.com/typecho/typecho/releases/download/v1.2.0/typecho-1.2.0-18.7.18-release.tar.gz上传方式选择小文件10MB用宝塔面板“文件” → “上传”功能直接拖拽大文件或批量操作用SFTP推荐FileZilla登录用户选typecho路径/www/wwwroot/blog.example.com/。上传后在宝塔“文件”管理器里右键点击压缩包 → “解压”目标路径选根目录即/www/wwwroot/blog.example.com/。解压完成你会看到admin/、usr/、var/等文件夹。此时关键一步修改config.inc.php文件权限sudo chmod 644 /www/wwwroot/blog.example.com/config.inc.php sudo chown www:www /www/wwwroot/blog.example.com/config.inc.phpTypecho安装向导会写入数据库配置如果权限是600仅owner可读Nginx worker进程运行在www用户下无法读取导致500错误。接着访问http://blog.example.com/install.php进入图形化安装向导。填写数据库信息时注意三点数据库地址填localhost不是127.0.0.1。宝塔MySQL默认绑定127.0.0.1但localhost会走Unix socket性能更好数据库名/用户名/密码从宝塔“数据库”列表里复制注意用户名带前缀如blog_123456别漏掉网站地址填https://blog.example.com即使还没配SSL先写HTTPS避免后期迁移URL重写麻烦。提交后若看到“安装成功”说明一切正常。但别急着登录后台先做最后一步删除install.php文件sudo rm -f /www/wwwroot/blog.example.com/install.php这是Typecho安全规范要求否则任何人访问该文件都能重装博客覆盖现有数据。3.5 SSL证书配置与HTTPS强制跳转宝塔的SSL配置堪称业界标杆。在“网站”列表里找到你的站点 → “设置” → “SSL”点击“Lets Encrypt”勾选域名点“申请”。通常10秒内完成。申请成功后必须开启“强制HTTPS”在“设置” → “SSL” → 勾选“强制HTTPS”或手动编辑Nginx配置在server块里加if ($scheme ! https) { rewrite ^/(.*)$ https://$host/$1 permanent; }但这里有个隐藏坑Typecho后台登录页/admin/在强制HTTPS后可能因Cookie Secure标志缺失导致登录失败。解决方案是在config.inc.php末尾添加define(__TYPECHO_SECURE__, true);这行代码告诉Typecho所有Cookie都加Secure属性只在HTTPS下传输。实操心得申请SSL时如果提示“DNS解析失败”别慌。先检查域名是否已指向服务器IPping blog.example.com再确认宝塔面板的“DNS”功能是否开启——宝塔7.20起默认关闭DNS解析检测需在“面板设置” → “安全”里勾选“允许DNS解析检测”。4. 常见问题排查与独家避坑指南4.1 502 Bad GatewayPHP-FPM没起来这是Typecho部署中最常见的错误。现象浏览器显示502Nginx错误日志/www/wwwlogs/blog.example.com.error.log里有connect() failed (111: Connection refused)。排查步骤检查PHP-FPM是否运行sudo systemctl status php74-fpm若显示inactive (dead)执行sudo systemctl start php74-fpm检查PHP-FPM监听端口sudo netstat -tuln | grep 9000应显示tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN检查Nginx配置/www/server/panel/vhost/nginx/blog.example.com.conf里fastcgi_pass是否为127.0.0.1:9000不是unix:/tmp/php-cgi.sock检查PHP-FPM池配置/www/server/php/74/etc/php-fpm.d/www.conf里listen 127.0.0.1:9000且listen.owner www。独家技巧宝塔7.10版本PHP-FPM默认用socket通信/tmp/php-cgi-74.sock但Typecho某些插件如CommentToMail调用shell_exec()时会因socket权限问题失败。我的固定方案是在PHP设置里将“监听方式”从“unix sock”改为“TCP端口”端口填9000一劳永逸。4.2 后台登录空白JavaScript资源404现象输入账号密码后页面刷新变空白F12看Network标签/admin/js/common.js返回404。根本原因Typecho 1.2.0的admin/目录下js/、css/、images/文件夹权限被宝塔自动设为755但Nginx需要755才能读取文件而Typecho后台PHP脚本却尝试用file_get_contents()读取这些静态资源——PHP进程以www用户运行对755目录有读权限但对644文件才有读权限。解决方案sudo find /www/wwwroot/blog.example.com/admin/ -type f -name *.js -exec chmod 644 {} \; sudo find /www/wwwroot/blog.example.com/admin/ -type f -name *.css -exec chmod 644 {} \; sudo find /www/wwwroot/blog.example.com/admin/ -type f -name *.png -exec chmod 644 {} \;这条命令把所有JS/CSS/PNG文件权限设为644既保证Nginx可读又满足PHP读取需求。4.3 文章中文标题乱码MySQL字符集陷阱现象后台发布文章标题显示为????但数据库里存的是正常中文。这是经典字符集不匹配问题。排查链路Typecho连接MySQL时指定字符集为utf8实际utf8mb3MySQL服务器默认字符集是latin1表结构CHARSETutf8mb4但连接层没生效。终极解决方案进入宝塔“数据库” → “phpMyAdmin” → 执行SQLALTER DATABASE blog_123456 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE typecho_contents CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;修改Typecho配置在config.inc.php里找到charset utf8改为charset utf8mb4重启PHP-FPMsudo systemctl restart php74-fpm。注意utf8mb4_unicode_ci比utf8mb4_general_ci排序更准支持Emoji是Typecho 1.2.0官方推荐的Collation。4.4 插件安装失败Permission denied现象后台“插件”页点击“启用”提示mkdir(): Permission denied。根源在于宝塔的权限模型网站根目录属主是www但Typecho插件安装时会尝试在usr/plugins/下创建文件夹而usr/目录权限是755www用户对其只有读和执行权限无写权限。正确解法sudo chown -R www:www /www/wwwroot/blog.example.com/usr/ sudo chmod -R 755 /www/wwwroot/blog.example.com/usr/注意-R递归修改755保证目录可写www用户是owner文件可读group和其他用户是r-x。4.5 访问速度慢OPcache没生效现象首页加载超3秒Chrome DevTools显示TTFBTime to First Byte高达2.5秒。检查OPcache是否启用访问http://blog.example.com/phpinfo.php搜索opcache确认opcache.enable为Onopcache.enable_cli为Off。但启用不等于生效。关键参数要调opcache.memory_consumption128默认64Typecho插件需128MBopcache.max_accelerated_files7963默认2000Typecho文件数超4000opcache.revalidate_freq60默认2设为60秒避免频繁检查文件修改时间。修改位置宝塔PHP设置 → “配置修改”找到opcache.ini填入上述参数保存后重启PHP。实测数据开启OPcache后Typecho首页TTFB从2.5秒降至180msPHP执行时间减少73%。这不是玄学是字节码缓存的硬核收益。5. 运维与安全加固实战5.1 自动备份策略本地远程双保险宝塔的“计划任务”功能是Typecho数据安全的生命线。我配置了两套备份本地备份每日任务类型Shell脚本执行周期每天凌晨2:00脚本内容#!/bin/bash # 备份Typecho网站文件 tar -zcf /www/backup/typecho_$(date %Y%m%d).tar.gz -C /www/wwwroot/ blog.example.com # 备份数据库 mysqldump -ublog_123456 -pyour_password blog_123456 /www/backup/db_$(date %Y%m%d).sql # 清理7天前备份 find /www/backup/ -name typecho_*.tar.gz -mtime 7 -delete find /www/backup/ -name db_*.sql -mtime 7 -delete远程备份每周任务类型备份到远程FTP执行周期每周日凌晨3:00目标FTP腾讯云COS通过coscmd工具关键命令coscmd upload /www/backup/typecho_$(date -d last week %Y%m%d).tar.gz typecho-backup/ coscmd upload /www/backup/db_$(date -d last week %Y%m%d).sql typecho-backup/提示FTP密码明文写在脚本里不安全。正确做法是在宝塔“计划任务”里勾选“使用密钥”将密码存为环境变量脚本里用$FTP_PASS调用。5.2 防CC攻击宝塔防火墙实战配置Typecho评论区是CC攻击重灾区。宝塔专业版“防火墙”插件配置要点如下IP黑名单导入公开的恶意IP库如Emerging Threats每周自动更新请求频率限制/action/comment路径单IP每分钟请求≤5次/admin/路径单IP每小时请求≤20次User-Agent过滤屏蔽python-requests、curl、Go-http-client等非浏览器UATypecho后台登录需浏览器此规则不影响正常用户验证码增强在“网站监控报表”里发现某IP连续提交100次评论失败自动触发“滑动验证”3次失败后封禁24小时。这套配置让我管理的12个Typecho站点近两年零CC攻击成功案例。关键是规则要细粒度不能一刀切封禁整个国家IP段——那会误伤海外读者。5.3 日常巡检清单5分钟搞定健康检查我给每个Typecho站点制定了一份5分钟巡检清单每月第一个工作日执行检查项操作命令正常状态异常处理PHP-FPM进程数ps aux | grep php-fpm | wc -l8-15个根据pm.max_children20个说明有死循环查/www/wwwlogs/blog.example.com.error.logMySQL连接数mysql -e SHOW STATUS LIKE Threads_connected;50100需查慢查询日志/www/server/data/mysql-slow.log磁盘剩余空间df -h /www20%清理/www/backup/旧备份或扩容云盘SSL证书有效期openssl x509 -in /www/server/panel/vhost/cert/blog.example.com/fullchain.pem -noout -datesnotAfter日期30天宝塔会自动续期但需确认“SSL”页显示“已续期”Typecho版本grep VERSION /www/wwwroot/blog.example.com/var/Widget/Base.php1.2.0若显示1.3.0立即回滚——说明有人误操作这份清单的价值在于把模糊的“网站好像慢了”变成具体的数字指标。比如某次巡检发现Threads_connected达120顺藤摸瓜查到是某个插件的数据库连接没关闭修复后TTFB直降40%
返回列表