ARTICLE DETAIL

资讯详情

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

宝塔面板搭建个人博客:LNMP环境、HTTPS与安全加固实战

宝塔面板搭建个人博客:LNMP环境、HTTPS与安全加固实战 1. 先把需求想明白为什么是宝塔面板为什么是个人博客1.1 面板到底替我干了什么活很多人第一次接触给服务器装环境这件事都是被命令行劝退的。编译 PHP、改 Nginx 配置、调 MySQL 权限这三件事单拎出来都不算难凑在一起就能把一个只想写点东西的人耗掉整整两个周末。宝塔面板的价值说白了就是把这三件事塞进了一个带界面的壳里安装 Nginx、MySQL、PHP 是一次点击建站是填几个输入框申请证书是勾一个选项。它解决的不是能不能做到而是要不要花一整天做到。我在自己折腾个人博客的这几年里前后搭过七八台机器从纯命令行手搓到全面板托管都试过一遍。结论很朴素如果你的目标是尽快开始写内容那面板就是最优解如果你的目标是我要彻底搞懂 Nginx 的每一行配置,那面板反而会挡住你。所以这篇东西我先讲清楚适用边界再讲具体怎么搭避免有人照着做完发现自己其实站错了队。这篇文章面向的人群很明确手里有一台云服务器、一个域名想搭一个属于自己的个人网站或者博客用来放技术笔记、作品集、生活记录但对 Linux 运维只有零散概念。整套流程走下来快的话四十分钟能上线慢的话一个下午也够了。我会把每一步的操作意图、容易翻车的地方、以及为什么这么选都掰开讲清楚。1.2 哪些人不适合用面板面板这种一键化工具有个天然代价它隐藏了细节。隐藏细节在 95% 的场景下是好事但在剩下 5% 的场景里会让人抓瞎。比如你在面板里建了站点结果访问一直报 404你不知道到底是伪静态没配对、还是 PHP 没解析、还是目录指错了因为你从来没看过那份 Nginx 的 server 块长什么样。所以有几种情况我个人是不建议用面板的。第一你要做的是高并发的生产服务需要精细调优 worker 进程数、连接数、内核参数面板的图形界面反而限制了你的表达。第二你的服务器规格特别小比如 512M 内存面板本身就会吃掉一部分资源。第三你的学习目标就是掌握 Linux 运维,那绕开面板直接手搓一遍收获更大。除此之外包括个人博客、小型企业站、作品集、文档站这类低频、低并发的场景面板都很合适。我自己现在维护的几个站里有两个就是用面板托管的跑了两三年没出过什么大问题日常维护成本几乎为零。1.3 开始之前的三笔账第一笔是服务器。个人博客的流量通常很小一天几百到几千 PV1 核 2G 的配置完全够用Nginx 加 PHP-FPM 加 MySQL 的常驻内存大约 500M 上下。如果你打算装 WordPress 再堆十几个插件建议至少 2 核 2G内存是比 CPU 更容易成为瓶颈的那个。硬盘选 40G 起步因为备份文件和日志会慢慢堆积我见过有人硬盘满了导致 MySQL 直接拒绝写入的。第二笔是域名。域名本身几十块钱一年但你需要知道一件事如果服务器在国内域名通常要走备案流程这个过程需要时间和材料准备如果不想走这一步可以选择香港或者海外节点代价是访问速度取决于线路质量。这个取舍没有标准答案取决于你更在意上线速度还是访问体验。第三笔是时间。真正卡人的不是安装本身而是各种等待系统初始化几分钟、面板安装几分钟、编译安装环境十几分钟、证书签发几十秒。我建议一次性把该装的东西都勾上别装一半去干别的不然容易忘记自己装到哪了。提示动手前先把服务器 IP、root 密码、域名服务商账号这三样东西放在手边中途缺一个都要停下来找体验很差。2. 服务器环境准备与宝塔安装的完整实操2.1 系统镜像怎么挑面板对系统的兼容性其实挺好但不同发行版的顺手程度差别不小。截至目前我实际用过的组合里Ubuntu 22.04 LTS 和 Debian 12 的表现最稳包管理是 apt出问题时搜到的解决方案也最多CentOS 7 虽然老牌且教程多但它的官方维护周期已经走到尾声新机器我不太推荐再从它起步CentOS Stream 或者 Rocky、Alma 这类替代品是更合理的选择。选系统的时候还有两个细节要注意。一个是架构现在很多云厂商默认给 x86_64如果你选的是 ARM 架构的实例面板本身支持但某些第三方扩展的预编译包可能没有 ARM 版本会需要现场编译麻烦。另一个是系统位数和内核别选那种精简版或者定制版镜像容易出现缺库的情况老老实实用官方标准镜像。我通常的做法是购买实例时直接选 Ubuntu 22.04 LTS 纯净版镜像登录后先跑一遍系统更新把安全补丁打上再开始装面板。这一步看起来多余但它能避免掉一类装到一半提示依赖冲突的莫名其妙问题。2.2 装机后的第一轮安全初始化很多人拿到服务器就以 root 身份一路裸奔这是最容易被扫描器盯上的状态。公网上的自动化扫描是 7×24 小时的一台新开的机器开放 22 端口几个小时内就会有成百上千次尝试登录。所以第一轮初始化我固定做三件事。第一件是改 SSH 端口。把默认的 22 换成一个不常用的高位端口这一步不是为了绝对安全而是把无差别扫描挡掉九成以上因为绝大多数扫描器只扫 22。改完之后记得在云厂商的安全组里放行新端口同时保留旧端口一段时间确认新端口能连上再关掉旧的否则容易把自己锁在外面。第二件是禁用密码登录改用密钥。密钥认证的暴力破解难度远高于密码配置方式是在本地生成一对密钥把公钥写到服务器的授权文件里然后在 SSH 配置中关闭密码认证。这一步做完即使有人知道你的端口和用户名也很难登进来。第三件是开启系统防火墙只放行必要端口SSH 端口、80、443以及面板自己的端口。其余的一律默认拒绝。这里我要提醒一句很多人改完防火墙规则忘了放行面板端口结果面板打不开以为装失败其实是防火墙拦住了。注意做任何防火墙和 SSH 变更时务必保留一个已经连上的会话不要关闭用新会话去验证验证通过再关旧的。这个习惯能救你很多次。2.3 安装宝塔面板安装本身只有一行命令但有几个前提。一是需要 root 权限二是需要机器能正常访问外网下载安装包三是安装过程会占用几分钟到十几分钟不等。安装脚本一定要从官方渠道获取最新版本不要用论坛里复制来的老脚本因为老脚本可能指向已经下线的源。大致流程是这样的先更新系统包索引并安装下载工具然后执行官方提供的安装脚本脚本会自动检测系统环境、安装依赖、拉取面板程序。整个过程它会打印大量日志你要留意最后输出的那几行——那里会包含面板的访问地址、初始用户名和初始密码。这个信息一定要立刻记下来或者截图保存因为它只显示一次。安装完成后脚本一般会提示你通过浏览器访问http://服务器IP:端口/安全入口进入登录页。如果你在国内节点上安装面板可能会提示是否需要绑定账号这个按提示走就行。海外节点有时会遇到下载源慢的问题耐心等或者换一个时间段重试。安装完之后我建议做两件事。一是在云厂商的安全组里确认面板端口已放行二是立刻登录面板把初始密码改掉并且设置一个自定义的登录入口路径。默认的入口路径是公开信息改成随机字符串能减少大量无意义的登录尝试。2.4 面板初始化设置进入面板的第一屏通常会推荐你安装一套运行环境也就是常说的 LNMP 或者 LAMP。这里千万不要直接点一键安装然后什么都不看因为默认选项未必适合你。我的习惯是先进软件商店手动挑版本逐个装这样每一步装了什么、装到哪了都心里有数。初始化阶段还要顺手配几个东西。第一是面板自身的 SSL开启后通过 https 访问面板避免登录凭证在公网明文传输。第二是面板的告警通知可以绑定邮箱或者其它渠道磁盘满、CPU 飙高、服务异常时能收到提醒这个功能在半夜救过我一次——磁盘写满导致数据库停摆收到告警后我远程清了一下日志就恢复了。第三是计划任务里的默认备份任务很多版本会默认开启检查一下它的保留份数和频率是否符合你的预期。还有一个小细节值得单独说面板的文件管理可以直接编辑服务器上的文件。这个功能很方便但也意味着一旦面板账号泄露别人就能直接改你的网站文件。所以面板密码一定要足够强登录入口一定要改能开二次验证就开。3. LNMP 环境搭建与站点上线3.1 软件版本的搭配逻辑版本搭配这件事网上说法五花八门我给一个我实际用下来最省心的组合Nginx 选稳定版分支MySQL 用 5.7 或者 8.0PHP 用 8.0 或 8.1。为什么不推荐 PHP 7.x因为主流博客程序和主题插件这两年都在往 8.x 迁移新装环境还停在 7.x往后升级会更麻烦。MySQL 5.7 和 8.0 的区别主要在于默认字符集和认证插件。8.0 默认使用更严格的认证方式一些老的 PHP 程序连接时可能会报错遇到这种情况把认证方式调回兼容模式即可。如果你用的是比较新的博客程序直接上 8.0 没什么问题。数据库引擎统一用 InnoDB这个不用纠结。PHP 版本是这里面最容易踩坑的。宝塔允许你同时安装多个 PHP 版本不同站点绑定不同版本这个设计非常实用。我的建议是至少装两个一个 8.1 给主站用一个 7.4 备用遇到某个老插件不兼容时可以直接切换站点绑定的 PHP 版本不用重装环境。装 PHP 的时候记得同时勾选常用的扩展比如用于缓存的 Redis 扩展、用于图片处理的 GD 或 Imagick、用于压缩的 zip 扩展这些后面装博客程序时大概率会用到。至于 Nginx 的具体调优参数比如 worker 进程数、keepalive 超时、gzip 压缩等级面板里都给了图形化的配置项。我的经验是先把 gzip 打开压缩类型里确保包含 text、css、js、json、svg 这几类其余的等站点跑起来之后再根据实际情况微调不要一上来就抄一堆参数容易抄出问题。3.2 创建站点与目录规范在面板里创建站点只有几个输入项域名、根目录、PHP 版本、数据库。但每一项背后都有讲究。域名这里可以填多个用换行分隔比如把example.com和www.example.com都填进去这样两个都能访问。但要注意如果你后面要申请 SSL 证书证书是绑定域名的所以最好一开始就把主域名和 www 都加上避免后面补的时候要重新签发。根目录我强烈建议改掉默认路径用一套自己的命名规则比如/www/wwwroot/站点名。默认路径通常带域名看起来没问题但一旦你以后要迁移或者做多站点域名长度不一的路径会很难管理。统一用简短的站点名做目录后期维护舒服很多。创建站点时面板会问你要不要顺便建数据库、要不要开启 FTP。数据库建议建因为博客程序要用FTP 我个人的建议是关掉需要传文件时用面板的文件管理器或者 SFTP 就够了多开一个 FTP 服务就多一个被爆破的入口没必要。创建完成后面板会在根目录生成几个默认文件包括一个首页文件和一个 404 页面。这些文件后面会被博客程序的安装包覆盖但先别急着删它们可以用来验证站点是否正常工作——如果访问域名能看到默认页说明 Nginx、PHP、域名解析这条链路是通的接下来出问题就一定是博客程序自身的问题排查范围一下子缩小了。3.3 域名解析与 HTTPS 证书域名解析这一步在域名服务商的控制台操作添加一条 A 记录把域名指向服务器公网 IP。生效时间通常是几分钟但受 TTL 影响最长可能几小时。验证是否生效的方法很简单在本地终端里 ping 一下域名看返回的 IP 是不是你的服务器 IP。如果解析还没生效就去申请证书会失败因为证书签发机构需要从公网访问你的域名来验证所有权。证书这一块现在没什么好犹豫的直接用免费证书就行面板里一键申请自动续期到期前会提醒。申请之前要确保 80 端口是通的因为验证过程需要访问你域名下的一个特定路径。如果你之前用 CDN 或者别的东西占用了 80 端口需要先处理掉。证书签发成功之后记得打开强制 HTTPS开关。这一步的作用是把所有 http 请求 301 跳转到 https避免出现同一个页面有两个地址、搜索引擎当成两个页面收录的情况。开启之后一定要用浏览器的无痕模式访问一下 http 地址确认能正常跳到 https并且地址栏是锁形图标。还有一个非常常见的坑证书装好了但页面加载出来样式全乱或者浏览器地址栏显示部分内容不安全。这通常是因为博客程序里还残留着 http 的资源链接尤其是数据库里存的图片地址和站内链接。解决办法是登录博客后台把站点地址改成 https 开头然后用数据库替换工具把历史内容里的 http 链接批量替换掉。这个操作前务必先备份数据库。3.4 数据库与账号权限面板创建站点时会自动建一个数据库和一个同名用户密码是随机生成的。这个默认配置能用但有两个地方我建议调整。第一是数据库用户名尽量不要和数据库名完全一致密码不要用面板生成的短密码稍微加长一点因为 MySQL 的账号是可以被公网尝试连接的——虽然默认配置下 MySQL 只监听本地但万一配置被改动弱密码就是敞开的大门。第二是权限范围。面板默认创建的账号只对那一个数据库有权限这是正确的做法不要图省事给它全局权限。如果后面你装了多个博客就建多个数据库和多个账号互相隔离。这样即使其中一个站被入侵其它站的数据还是安全的。数据库的连接地址通常填 localhost 或者 127.0.0.1不要填公网 IP走本地回环速度更快也更安全。字符集统一选 utf8mb4这个能完整支持中文和特殊符号包括现在流行的各类表情符号用老的 utf8 存表情符号会直接报错或者变成问号。提示面板的数据库页面可以开启仅本地访问默认就是开的别去关它。远程连接数据库除非有明确需求否则一律不要开。4. 部署博客程序从上传到能打开4.1 程序选择与上传解压博客程序的选择决定了你后面所有的工作量。大致分两类动态程序和静态程序。动态程序像 WordPress、Typecho 这类安装完就能在后台写文章所见即所得插件生态丰富代价是需要 PHP 和数据库支持访问速度依赖服务器性能。静态程序像 Hexo、Hugo 这类本地生成 HTML 文件再上传访问极快、几乎不消耗服务器资源代价是写文章需要本地环境改个错别字都要重新生成上传。如果你只是想安安静静写东西技术笔记为主我推荐从轻量的动态程序起步比如 Typecho安装包只有几百 KB数据库表也简单跑在小配置服务器上毫无压力。如果你打算做作品集或者对访问速度有执念静态生成器更合适。上传方式有几种我按推荐顺序排一下。最省事的是用面板的文件管理器直接上传压缩包然后在线上解压适合几 MB 到几十 MB 的包。如果是几百 MB 的大包建议用 SFTP 客户端传速度更稳定支持断点续传。还有一种方式是在服务器上直接用下载命令拉取官方安装包速度取决于服务器到源站的网络有时候比本地中转更快。解压之后有个关键步骤把程序文件从解压出来的子目录移动到站点根目录。比如你解压得到的是一个wordpress文件夹里面的内容才是程序本体需要把这些内容剪切到/www/wwwroot/站点名下面而不是让站点根目录里多一层wordpress目录。这一步没做对访问域名会直接列出目录或者报 404是很常见的低级错误。4.2 安装向导与配置文件文件放好之后访问你的域名程序会自动跳到安装向导。向导会要求你填数据库信息包括数据库名、用户名、密码、主机地址、表前缀。前面几项在面板的数据库页面复制即可主机地址填 localhost表前缀建议改掉默认的比如从wp_改成blog_之类。改前缀的意义在于如果以后有自动化脚本尝试批量注入它们通常默认表名是wp_前缀改了就能挡掉一部分无差别攻击。虽说不能指望它挡住有目标的攻击但成本为零做一下没坏处。安装过程中如果报无法连接数据库按这个顺序排查数据库名或用户名有没有多复制空格密码里有没有特殊字符被转义数据库用户是否对该库有权限MySQL 服务是否正常运行。这几条查完九成的问题都能解决。安装完成后程序会给你一个后台地址和管理员账号密码。请务必立刻做三件事改掉自动生成的管理员密码、把管理员用户名从默认的 admin 改成别的、开启后台的登录失败限制。默认用户名加弱密码是博客被入侵的头号原因我见过太多站点首页被挂上乱七八糟的跳转追查下去都是后台账号太弱。配置文件是另一个需要留意的地方。以常见的 PHP 博客为例安装完成后会在站点根目录生成一个配置文件里面存着数据库明文密码。这个文件的权限要设置成只有属主可读也就是 644 甚至 600绝对不要给 777。同理站点目录下的所有目录权限设 755文件设 644不要图省事全给 777那等于把门敞开。4.3 伪静态与固定链接这是新手最容易卡住的一环。伪静态的作用是把index.php?p123这种带参数的地址变成/archives/123.html这种看起来像静态页面的地址。做这件事需要两边的配合服务器的 Nginx 要有一条 rewrite 规则博客程序要开启对应模式。面板里处理这件事非常方便站点设置里有伪静态选项下拉菜单里直接选你的程序名即可比如选wordpress或者typecho它会自动写入对应规则。选完保存重载一下 Nginx 生效。程序这边则在后台的设置里找固定链接或者永久链接选一个结构。我个人的偏好是/archives/{id}.html这种形式简单、稳定、不会因为标题改动导致链接失效。如果你用日期形式比如/2023/10/01/标题.html那么以后改标题链接就变了需要做跳转麻烦。这两步做完之后打开一篇已发布的文章看地址栏是不是你设定的形式。如果出现 404说明伪静态规则没生效。常见原因是选错了规则类型、或者 Nginx 没重载、或者你用的是子目录安装但规则没改路径。还有一种情况是规则生效了但程序里的固定链接没保存两边不同步重新保存一次固定链接即可。注意切换固定链接形式会导致旧链接全部失效搜索引擎收录的地址也会 404。所以这一步最好在建站之初就定好后面尽量不要再改。如果非要改记得在 Nginx 里配置 301 跳转。4.4 主题与插件的取舍主题和插件是让博客从能用变好用的关键但也是性能杀手的主要来源。我的原则是主题只留一个插件能少则少装之前先问自己不装它我会不会难受。主题方面选主题看三点响应式适配手机上要能正常看、加载速度别一上来就加载十几个字体文件和动画库、更新频率长期不更新的主题遇到新版本 PHP 容易报错。那些功能特别花哨、带各种特效的主题通常意味着大量的额外请求在低配服务器上会明显拖慢首屏时间。插件方面我通常只装这几类缓存插件、SEO 基础插件、图片压缩插件、备份插件。缓存插件是提升速度最有效的单一手段SEO 插件用来生成站点地图和控制标题描述图片压缩插件能显著减小页面体积备份插件是最后的安全网。除此之外的社交分享、阅读统计、相关文章推荐这类能用轻量方案替代就用轻量方案能自己写几行代码解决就别装插件。这里有个经验值得说装插件的时候不要一次装十个然后一起启用应该装一个、启用一个、测一次页面速度。这样一旦出现问题你能立刻知道是哪个插件导致的。我踩过一次坑一次性装了一堆插件结果站点白屏只能一个个禁用排查花了半小时。5. 提速与加固让站点跑得稳、扛得住5.1 缓存分层缓存这件事分清楚层次比调参数重要。一个博客页面的生成链路大致是PHP 执行程序逻辑、查询数据库、渲染模板、输出 HTML。缓存的目标就是在这条链路的各个环节减少重复劳动。最上层是页面级缓存也就是把渲染好的 HTML 直接存起来下次请求直接返回PHP 和数据库都不碰。这是收益最大的一层通常由博客程序的缓存插件来实现。开启后第一次访问会生成缓存文件之后都是直接读文件速度能提升一个数量级。中间层是数据缓存把数据库查询结果存到内存里比如用 Redis。这一层对动态交互多的站点收益明显如果你的博客有评论、有搜索、有会员功能值得开。面板里装一个 Redis 服务再给对应的 PHP 版本装 Redis 扩展然后在博客程序里配置连接即可。还有一层是 PHP 自身的字节码缓存也就是 OPcache。它的作用是避免每次请求都重新编译 PHP 文件这个功能装好环境后建议直接开启几乎没有副作用面板的 PHP 设置里就能开还能看到命中率。命中率如果长期很低说明 PHP 文件在频繁变动或者内存设置过小可以适当调大。这三层都开好之后还有一个容易被忽略的点静态资源的缓存。图片、CSS、JS 这些文件应该设置较长的浏览器缓存时间比如 30 天这样回头客访问时不需要重新下载。在 Nginx 配置里对图片和样式脚本文件设置缓存头即可很多一键部署的规则里已经包含了这部分。5.2 备份策略备份这件事只有真正丢过数据的人才会重视。我需要说清楚一个概念备份不是复制一份放在同一台服务器上那叫副本不叫备份。如果服务器磁盘坏了副本和原文件一起没了。真正的备份至少要满足异地和多版本两个条件。我的做法是三层。第一层是本地快照利用面板的计划任务每天凌晨自动打包网站文件和数据库保留最近七天放在服务器的一个独立目录里。这一层的定位是快速回滚比如你改了个主题把站点搞崩了直接用昨天的包恢复两分钟搞定。第二层是异地备份用对象存储服务把每天的备份包自动上传到云端保留三十天。对象存储的成本很低一个几十 MB 的博客备份包一个月花不了几毛钱。这一层应对的是服务器整体损毁、被入侵删库这类灾难场景。第三层是手动导出我会每隔一段时间把数据库导出一份放在自己的电脑上。这个频率不用高一个季度一次就行主要是防止云端账号本身出问题。还有一点要专门说备份文件不要放在网站根目录下。有人图省事把备份压缩包丢在站点根目录结果被搜索引擎爬虫抓到或者被别人猜到路径下载走数据库里所有内容包括管理员密码哈希全暴露了。备份文件应该放在 Web 访问不到的目录或者干脆不在服务器上长期留存。5.3 安全加固清单安全这块我按性价比排个序从最容易做、收益最高的开始。第一是前面说过的改 SSH 端口、禁用密码登录、开防火墙。这三件事做完你的服务器已经挡掉了绝大多数自动化攻击。第二是给网站加一层访问限制。面板的防火墙功能可以设置限制单 IP 的访问频率防止有人用脚本高频请求把你的服务器打满。对于博客这种场景正常用户一分钟顶多点几十次超过这个频率基本都是异常拦掉不影响体验。第三是及时更新。这里包括系统补丁、面板版本、程序版本、插件版本。漏洞利用大多数时候打的都是已知漏洞只要及时更新就没事。面板会提示可更新的项目建议每周花十分钟点一遍。第四是目录权限。前面提过目录 755、文件 644配置文件更严格。这个规则不用记原理照做就行。顺便说一句宝塔有个防跨站攻击的开关默认是开的它会限制 PHP 只能访问站点自己的目录这个别关。第五是隐藏版本信息。让 Nginx 和 PHP 的响应头里不出现具体版本号能减少被人针对性利用的可能。面板里勾一下就行。第六是定期看日志。面板里的网站日志能看到访问来源和请求路径。如果发现某个 IP 在短时间内疯狂请求同一个地址或者请求一些你站点上根本不存在的路径那基本就是扫描器。看日志的好处是能提前发现问题而不是等到站点被打了才知道。提示不要安装来路不明的破解版主题和插件这类文件里夹带后门是最常见的入侵方式。免费和盗版之间的那点差价不值得用整站数据去换。6. 踩坑实录与问题速查6.1 典型报错对照表下面这些是我这些年实际遇到过、并且被问得最多的问题整理成表格方便对照排查。现象大概率原因处理方式访问域名显示目录列表根目录下缺少默认首页文件或首页文件名与 Nginx 配置不匹配检查根目录是否有 index.php并确认站点配置里默认文档顺序正确502 Bad GatewayPHP-FPM 进程崩溃、进程数不够、执行超时查看 PHP 日志调大进程数和最大执行时间检查内存是否耗尽504 Gateway Timeout后端处理时间过长通常是数据库慢查询或插件卡死开启慢查询日志定位先禁用可疑插件再考虑加缓存403 Forbidden目录权限不对、防跨站攻击设置过严、默认文档缺失重设目录权限为 755 文件 644检查防跨站目录是否包含站点根路径页面白屏无内容PHP 内存不足、插件冲突、PHP 版本不兼容提高 PHP 内存上限逐个禁用插件排查切换 PHP 版本测试数据库连接错误账号密码错误、权限不足、MySQL 服务未启动核对配置文件的连接参数检查数据库服务状态和用户权限上传图片失败PHP 上传大小限制、目录不可写调大上传限制参数确认上传目录属主和权限正确后台登录后跳回登录页Cookie 域设置问题、HTTPS 混合内容检查站点地址配置确认全站统一使用 https页面样式错乱数据库里残留 http 资源链接、缓存未刷新批量替换链接为 https清理程序缓存和浏览器缓存磁盘占用持续增长日志未切割、备份文件堆积、缓存文件过多配置日志轮转定期清理旧备份检查缓存目录大小表格里的每一条我都实际处理过至少一次其中 502 和 403 是最常见的两兄弟。502 的思路是PHP 那边出问题了403 的思路是权限或者配置拦截了把这两个方向记住排查能省很多时间。6.2 几个容易忽略的细节第一个是时区。服务器默认时区可能不是国内时区导致博客文章发布时间差八个小时。解决方式是在 PHP 设置里指定时区同时在博客程序的后台设置里也确认一遍时区选项。这个不影响功能但会让时间线看起来很奇怪。第二个是内存上限。默认的 PHP 内存上限通常比较保守装了一些插件之后经常不够用表现为后台打开某个页面白屏或者报内存耗尽。适当调大即可不需要调到特别夸张256M 对普通博客足够了。同时博客程序自身也有一个内存常量可以调两边要一致。第三个是上传大小限制。默认限制可能是 2M你想传一张高清图或者一个主题包就传不上去报错还很隐晦。需要同时调整 PHP 的上传大小、POST 大小如果前面还有反向代理代理那边也要放宽否则改了 PHP 也没用。第四个是邮件发送。博客的评论通知、密码找回都要发邮件而服务器默认没有邮件服务需要自己配。一个简单的办法是用第三方的邮件服务通过插件配置 SMTP比自己搭邮件服务器省事得多也避免了服务器 IP 被误判的问题。第五个是 robots 和站点地图。如果你希望站点被搜索引擎收录需要确保没有意外屏蔽爬虫同时生成站点地图并提交。有些主题或者插件会默认写一个屏蔽规则如果你发现站点一直不被收录先去检查这个。第六个是域名续费和证书到期。这两件事都有提醒机制但提醒可能发到你不再使用的邮箱里。我建议在手机日历上设一个年度提醒提前一个月处理。域名过期被抢注、证书过期导致全站报错这两种情况我都在别人那里见过恢复起来都挺麻烦。还有一个我个人的小习惯每次对站点做较大改动之前先手动打一个备份包改完之后立刻访问几个关键页面验证。这个动作花不到一分钟但能让你在任何改动出问题时一秒钟回到改动前的状态。比起事后排查半小时这个投入太划算了。最后分享一个我摸索出来的管理思路把内容和配置分开对待。内容就是你的文章、图片、评论这些是真正有价值、丢了找不回来的东西备份的重点全在这里。配置是主题设置、插件参数、Nginx 规则这些东西重装一遍也就半小时丢了不可惜。想清楚这一点你就知道备份资源该往哪倾斜了也不会因为纠结要不要备份整个服务器镜像而浪费钱。后续如果你想把博客再往前推一步可以考虑的方向有几个接一个内容分发服务把静态资源分散到各地节点把评论系统换成第三方的减少数据库压力或者干脆把整个站转成静态生成本地写完推送上去访问速度会快到另一个层次。这些都是可选项等你先把站跑起来、写够二十篇文章之后再考虑一点都不迟。
返回列表