ARTICLE DETAIL

资讯详情

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

Z-Blog搭建个人博客网站安装教程:环境配置、数据库与伪静态配置

Z-Blog搭建个人博客网站安装教程:环境配置、数据库与伪静态配置 上个月把跑了两年多的个人博客从另一套程序搬到了 Z-Blog顺手又给两个朋友各搭了一套前后装了四五次中间踩的坑基本能凑成一本小册子。这篇 zblog 搭建个人博客网站 的安装教程我尽量按真实操作顺序写不藏步骤也不跳坑从买机器、配环境、传文件、建数据库一直写到伪静态和后台配置。个人博客 这东西说起来简单真动手的时候卡人的往往是权限、字符集、伪静态规则这些不起眼的细节所以我把自己记录下来的每一步都摊开讲包括哪些地方可以偷懒、哪些地方一定不能省。看完你应该能独立把一套能正常访问、后台能登录、文章能发布的站点跑起来不需要额外翻别人的帖子拼凑。1. 先想清楚为什么用 Z-Blog 搭个人博客1.1 从折腾成本倒推选型这件事我最早用的是静态博客生成器本地写完 Markdown 再生成 HTML 上传好处是快、安全、几乎不占资源坏处是换电脑、换环境之后那套工具链得重新装一遍Node 版本、依赖包、模板改动的兼容问题隔三差五冒出来。后来换成动态 CMS功能是全但一个默认安装就是几百兆后台菜单点进去三层套三层插件更新还容易把主题样式冲掉。来回折腾几轮之后我才想明白个人博客的真实需求其实很窄能写文章、能分类归档、能被搜索引擎收录、后台别太复杂、服务器别太贵。Z-Blog 正好卡在这个位置上。它是国内比较老资格的博客程序早期是 ASP 版本后来整体转向 PHP现在主流的 Z-BlogPHP 就是纯 PHP 加 MySQL 的组合。整个程序解压出来也就几十兆数据库表结构简单后台是全中文的写文章、改模板、装插件这套流程对新手相当友好。我实测在一台 1 核 1G 的入门机器上跑 Z-Blog 加上几十篇文章和日常访问量内存占用长期在 200M 上下压力非常小。这也是我最后推荐它的主要原因不是因为功能最多而是因为它把够用这件事做得很克制。1.2 Z-Blog 的真实优势与短板都在哪优势方面第一是轻。程序体积小意味着上传快尤其你用的是虚拟主机或者带宽不宽裕的机器时这点体验差别很明显。第二是模板标签体系清晰主题文件基本就是 HTML 加一套自己的标签稍微懂点网页基础的人照着现有主题改半天就能做出自己的样式不需要啃复杂的框架文档。第三是伪静态支持完善后台有专门的静态化管理页面Apache、Nginx、IIS 的规则都给你列出来复制粘贴就能用这对 SEO 来说很关键。第四是自带缓存机制文章量上来之后开启缓存页面响应速度能压到几十毫秒。短板也得说清楚不然你装完之后会觉得被骗。Z-Blog 的主题和插件生态规模比不上那些国际主流程序尤其是一些偏门功能比如复杂的会员体系、多语言站点、商城模块大概率找不到现成方案得自己写或者绕路实现。另外部分老插件年久失修装上去可能和新版本 PHP 打架所以我在下面会专门讲插件取舍的原则。还有一个现实问题社区讨论的热度不如从前遇到特别奇怪的问题能搜到的资料有限这时候就得靠日志和排查思路自己啃我在第 5 部分整理了一张速查表就是干这个用的。1.3 动手之前先回答自己三个问题第一个问题站点定位是什么。是纯技术笔记、生活随笔还是要做资源分享站定位直接决定你选什么主题、装什么插件、固定链接怎么设计。技术类博客需要代码高亮和标签体系生活类更看重图片展示和阅读体验这两个方向的主题选型完全不一样装完再换主题会有一堆样式要重调很费时间。第二个问题准备投入多少维护精力。动态博客意味着有后台、有数据库、有登录入口理论上就存在被扫描和被尝试登录的风险你需要定期备份、定期更新程序版本。如果你一个月都懒得登一次后台那我真心建议你考虑静态方案而不是硬上 Z-Blog。第三个问题预算和设备。这套东西可以跑在几十块一年的虚拟主机上也可以跑在云服务器上还能在本地用 VMware 装个 Ubuntu 虚拟机、或者用 Windows 自带的 IIS 先练手。本地搭一套最大的好处是不用花钱、不怕搞坏练熟了再上线上环境我建议第一次接触的人就走这条路就跟学 Python、Git、Docker 一样先在本地把安装流程跑通一遍心里有底了再动真格的。2. 环境准备主机、域名和运行环境的取舍2.1 主机方案对比与选择逻辑选主机这件事没有标准答案只有匹配度。我把常见的几种方案列成表你可以直接对号入座。方案成本区间上手难度适合场景主要坑点虚拟主机几十到两百一年低只想写文章、不想碰系统不能自由改 PHP 版本和伪静态配置云服务器加面板一两百到上千一年中想完全掌控环境、长期运营需要自己配环境、做安全加固本地 Windows IIS免费中低练手、内网演示PHP 扩展配置繁琐容易漏装虚拟机加 Linux免费中熟悉 Linux 环境、做迁移演练网络模式配错就连不上我自己的组合是云服务器加面板理由是面板把建站、建库、传文件、配 SSL 这几件事全图形化了省下的时间可以用来写内容。但如果你只是想先感受一下 Z-Blog 长什么样本地 IIS 加 PHP 也够用只是要注意 Windows 下 IIS 装 PHP 需要手动配 FastCGI 和扩展别漏装 mysqli 和 mbstring不然安装向导第一步就卡住。2.2 PHP 版本、数据库和扩展的硬性要求Z-BlogPHP 对 PHP 版本比较宽容5.x 到 8.x 都能跑但这里有个实战经验不要盲目追新。我建议选 PHP 7.4 或者 8.0这两个版本兼容性最好绝大多数主题和插件都是在这两个版本上测过的。直接上 PHP 8.2、8.3 的话一些老插件可能因为语法废弃而报错报错位置还往往藏得很深很难查。数据库方面 MySQL 5.6 以上、MariaDB 10.x 都可以字符集必须选 utf8mb4这个一定要记住。选 utf8 的话文章里出现个别符号或者表情会变成问号而且事后修复很麻烦需要改表结构再重新导入数据纯粹是给自己找事。排序规则用 utf8mb4_general_ci 或者 utf8mb4_unicode_ci 都行前者快一点后者排序更准确个人博客选哪个都无所谓。PHP 扩展必须确认这几个是开启状态mysqli 或者 pdo_mysql数据库连接缺了直接装不了、gd验证码和缩略图、mbstring中文处理、curl外部请求插件常用、zip解压压缩包、opcache性能优化强烈建议开。在后台的 PHP 设置里能直接勾选命令行的话在 php.ini 里把前面的分号去掉再重启服务。2.3 域名解析和访问入口的准备工作域名这块先把解析做好再去装程序顺序反了会出现装完了打不开的尴尬。做法是在域名管理后台添加一条 A 记录主机记录填 或者 www记录值填你服务器的公网 IP。想两个都访问的话建议 和 www 各加一条然后在面板里把其中一个设置成 301 跳转到另一个搜索引擎那边会更干净避免收录两份相同内容。解析生效通常几分钟到几小时可以用命令行 ping 一下域名看返回的 IP 对不对对不上就是还没生效或者记录填错了。如果你的机器所在机房有额外的手续要求按服务商的指引走完就行这个每个服务商流程不一样我不展开你买机器的时候客服一般会主动提醒。还有一点提醒公网服务器的防火墙和安全组要放行 80 和 443 端口很多人装完程序本地能访问、外网打不开最后一查是安全组没放行白白折腾半天。2.4 装之前的环境自检清单动手之前花五分钟过一遍这张清单能省掉后面至少半小时的排查时间。PHP 版本确认在 7.4 或 8.0命令行执行php -v或者在面板里看数据库已创建字符集是 utf8mb4记住了库名、用户名、密码上面说的那六个扩展全部处于启用状态upload_max_filesize和post_max_size至少调到 20M不然传主题包会失败max_execution_time调到 300安装和后续备份都用得上网站根目录是空的没有 index.html 之类的默认首页抢占入口防火墙放行了 80、443数据库端口 3306 不要对公网开放3. 手把手走完安装流程3.1 下载程序与目录结构的初步认识去 Z-Blog 的官方网站下载最新的 PHP 版本压缩包认准官方渠道别从第三方下载站拿那边经常塞广告或者改过的文件装上去出问题你都不知道从哪查起。下载完先在本地解压一遍不是为了改文件是为了看清楚目录结构心里有个谱。解压出来大致是这么几块根目录下的index.php是首页入口zb_system是程序内核目录正常情况你不应该去动它升级的时候这一整个目录会被覆盖zb_users是用户数据目录主题放在theme子目录、插件放在plugin子目录、缓存放在cache、上传的附件在upload数据库连接配置文件也在这一层叫c_option.php这个文件是安装过程中自动生成的后面排查数据库问题第一个就看它还有一个install目录专门负责安装向导装完之后必须删掉或者改名留着就是个安全隐患别人可以直接访问你的安装脚本。3.2 文件上传和目录权限设置上传方式看你有什么工具。有面板的话最省事在文件管理里把压缩包传上去再点解压注意上传的目标必须是网站根目录不要传成public_html/zblog/这样的子目录除非你确实想用子目录访问。用 FTP 或者 SFTP 客户端的话我一般用 FileZilla 或者 WinSCP连接信息在面板的 FTP 管理里能看到。上传的时候有个细节几千个小文件一个个传会很慢先传 zip 再在服务器端解压速度能快好几倍。权限是这一步最容易出问题的地方。Linux 环境下目录权限一般是 755文件是 644这个默认值通常就够。但安装向导需要往zb_users目录里写配置文件如果这个目录属主不对或者权限太严安装会直接提示无法写入。遇到这种情况临时把zb_users以及下面的data、cache目录改成 777装完之后再改回 755。Windows 的 IIS 环境下对应的是给IIS_IUSRS或者NETWORK SERVICE账号加写入权限思路是一样的。3.3 数据库创建与连接信息填写数据库我用面板举例因为最直观进面板的数据库页面新建一个库编码选 utf8mb4同时创建一个专用用户并给它授权到这个库别图省事直接用 root 账号。用命令行的话大概是这样CREATE DATABASE zblog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER zbuserlocalhost IDENTIFIED BY 这里换成你的强密码; GRANT ALL PRIVILEGES ON zblog.* TO zbuserlocalhost; FLUSH PRIVILEGES;这里要提醒一个高频坑点数据库地址到底填 localhost 还是 127.0.0.1。这两个在大多数情况下等价但在某些环境下解析方式不同socket 连接和 TCP 连接走的路径不一样填 localhost 连不上就换 127.0.0.1 试试反过来也一样。端口默认 3306改过的话记得同步。表前缀建议改掉默认的用一组自己认识的字母组合这样万一以后库里有别的程序共存也能一眼分清哪些表是 Z-Blog 的。3.4 执行安装向导的每一步在浏览器里访问你的域名程序会自动跳到安装向导。第一步是环境检测会列出 PHP 版本、扩展状态、目录权限哪一项显示不通过就回去解决哪一项不要点着下一步硬冲后面一定报错。第二步是许可协议勾选同意继续。第三步是数据库信息填写把上面准备好的库名、用户名、密码、地址、端口、表前缀填进去点测试连接显示成功再往下走。第四步填站点信息和管理员账号。站点名称、副标题随意填后面能改。管理员用户名千万别用 admin 或者 root这是被自动化脚本扫描的头号目标用一个没什么规律的名字。密码强度拉满字母数字符号混合至少 12 位。邮箱填真实的找回密码用得上。第五步点安装进度条跑完会出现成功提示同时告诉你安装目录需要删除。3.5 安装完成后的三件必做事项第一件事删除install目录。这一步别偷懒留着的话别人访问/install/就能重跑安装脚本理论上可以覆盖你的配置风险非常高。第二件事检查zb_users/c_option.php是否正常生成文件里能看到数据库连接信息如果安装时提示无法自动生成、让你手动创建就按提示把内容复制进去另存为这个文件名。第三件事登录后台把默认后台路径改掉。Z-Blog 支持自定义后台入口目录名改成只有你自己知道的名字能挡掉绝大部分自动化扫描。顺手再检查一下根目录有没有多余的默认首页文件比如某些主机自动生成的index.html它优先级可能高于index.php会导致你访问域名时看到的是主机商的欢迎页而不是博客首页删掉即可。4. 后台配置让站点真正能用的关键设置4.1 站点信息、时区和静态化设置进后台第一站是站点设置。站点名称和副标题直接影响浏览器标题栏和搜索结果展示认真填。域名这一栏填你最终对外使用的完整地址带 http 或 https带不带 www 要和你的跳转设置保持一致填错了会导致后台部分功能跳转异常。时区选 Asia/Shanghai不然文章发布时间会差八小时看着很别扭。静态化设置是重点。Z-Blog 提供几种模式我强烈建议选伪静态或者静态化不要用默认的带问号的动态地址。原因很直接带一堆参数的 URL 对搜索引擎不友好而且用户看着也不专业。切换模式之后必须去服务器的伪静态规则里同步配置否则所有文章页和分类页都会 404。这个顺序不能反先配规则再切模式或者切完立刻配中间如果隔了时间自己访问会以为站点坏了。4.2 伪静态规则怎么写才不踩坑Z-Blog 后台的静态化管理页面会直接给出当前服务器类型所需的规则文本复制粘贴是最稳的做法我下面给的只是通用形态帮你看懂它在干什么。Apache 环境下在网站根目录放一个.htaccess文件RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]Nginx 环境下在站点的 server 配置块里加location / { if (-f $request_filename) { break; } rewrite ^/(.*)$ /index.php?$1 last; }IIS 环境需要先安装 URL Rewrite 模块然后在web.config里写规则本质逻辑一样都是把不存在的文件和目录请求转交给入口脚本处理。配置完记得重载服务Apache 对应的是确认AllowOverride All已经开启Nginx 是nginx -t检查语法再 reload。规则写完访问一篇文章页能正常打开说明成了还是 404 就去看服务器错误日志和重写日志日志里的信息比瞎猜快得多。4.3 主题和插件的取舍原则主题可以直接在后台的应用中心搜索安装也可以手动把主题压缩包解压到zb_users/theme目录下。我个人的做法是手动上传因为下载到本地能先看一眼代码确认没有奇怪的加密文件或者外链请求。选主题的标准我总结成三条一是响应式适配做得好手机上打开不变形二是代码结构干净最好带注释三是更新频率别是三五年前的太久没更新的主题大概率在新版 PHP 上有告警。插件一定要克制这是我最想强调的一点。新手常见的做法是看到功能就装SEO 装一个、缓存装一个、统计装一个、评论增强装一个、图片压缩再装一个结果后台慢得像蜗牛还互相冲突。我的建议是只装这几类一个缓存类插件、一个防垃圾评论的、一个备份类的其余功能能用程序自带就用自带的。装完每加一个插件都刷新一下前台和后台确认没问题再加下一个出了问题能立刻定位到是谁捣的鬼。4.4 发布第一篇文章与固定链接规划写文章之前先把分类和标签规划好这一步花十分钟后面省很多事。分类是树状的适合做大的内容板块比如技术笔记生活随记工具推荐数量控制在十个以内太多了导航栏会撑爆。标签是扁平的用来做交叉索引比如PHP建站踩坑一篇文章挂三到五个标签比较合适。固定链接的格式一旦定下来就别改了。收录是需要时间的你改一次链接之前所有已经收录的地址全部失效流量会掉得很明显。Z-Blog 后台能设置文章 URL 的形式我建议用带文章 ID 的短链接稳定、不会和中文标题冲突。如果你确实必须改记住一条铁律给每一个旧地址配置 301 永久跳转到新地址把权重传递过去别让用户和搜索引擎撞上死链。发布流程本身很直观进新建文章填标题、正文、摘要、分类、标签、别名正文编辑器支持富文本和源码两种模式写代码的话建议装一个代码高亮插件或者直接在源码模式里手动加precode标签再用样式美化。发之前点预览看一眼前台效果这个习惯能帮你抓出不少排版问题。5. 常见问题与排查实录5.1 安装阶段高频报错速查表这张表是我自己遇到加上帮朋友排查攒出来的遇到问题先对照能省掉大量搜索时间。现象常见原因处理方式提示数据库连接失败地址 localhost 与 127.0.0.1 混用、端口错、账号无权限换地址写法检查端口用命令行登一次数据库验证账号提示无法写入配置文件zb_users目录权限不足临时改 777装完改回 755或手动创建 c_option.php页面白屏无任何输出PHP 版本过高导致语法报错、扩展缺失看服务器错误日志降级到 7.4补装扩展500 内部服务器错误权限错误、.htaccess 语法错、PHP 内存不足先临时移走 .htaccess 测试再逐个排除中文显示成问号数据库字符集不是 utf8mb4重建数据库并指定 utf8mb4重新导入数据上传主题或附件失败上传体积超限调大 upload_max_filesize 和 post_max_size安装向导第二步卡住目录权限检测不通过按提示逐项修权限别跳步5.2 后台相关的疑难杂症处理有一类问题特别烦人能进登录页输完账号密码点登录页面刷新一下又回到登录页什么提示都没有。这种情况我遇到过两次第一次是 Cookie 域设置和实际访问域名不一致比如你访问的是带 www 的地址但后台配置里写的是不带 www 的浏览器认为 Cookie 不属于当前域就丢掉了第二次是服务器上的 session 目录没有写权限会话文件存不下来。排查顺序就是先统一域名再看 session 目录权限和剩余空间。还有一种情况是后台页面样式全丢满屏纯文字。这通常是静态资源路径问题比如你开了伪静态但规则写得不对导致 CSS 和 JS 文件也被重写到了入口脚本返回了一堆 HTML 内容当样式用。临时把伪静态切回动态模式如果样式恢复正常就说明是规则的问题回去把文件存在则不重写那个条件补上。登录之后想改后台目录名的话在后台设置里改完记得同时把服务器上对应的目录重命名两个地方必须一致只改一边会直接打不开后台这时候只能去服务器上手动改回来。5.3 性能与安全的基础加固清单安全这块不需要做得多么复杂把基础动作做到位就能挡掉绝大多数自动化攻击。第一后台入口改名别用默认路径。第二管理员密码用强密码并且定期换不要多个站点 reuse 同一个密码。第三关闭你不需要的接口功能比如外部发布接口不用就关掉减少暴露面。第四程序版本和插件保持更新更新前先备份这两件事永远成对出现。性能方面先开程序自带的缓存这一步收益最大。然后处理图片上传前压缩到合适尺寸别把手机拍的五六兆原图直接传上去一个页面二十张图用户加载会骂人。再往后如果访问量真的上来了可以考虑上内容分发网络把静态资源分发出去源站压力会小很多。这些动作按收益排序先做前面的别一上来就追求极致优化。5.4 备份和迁移的实操细节备份分两块文件和数据库缺一不可。文件直接用面板打包网站根目录数据库用面板的导出功能或者命令行mysqldumpmysqldump -u zbuser -p zblog zblog_backup_$(date %Y%m%d).sql备份频率看更新频率一周更新几篇文章的话一周一次全量备份足够但数据库建议两三天一次因为文章和评论都在数据库里丢了很难找回来。备份文件别只存在服务器上下载一份到本地或者传到别的地方服务器整机出问题的时候存在服务器上的备份等于没有。迁移的流程正好是备份的反向操作新服务器上配好同样的环境导入数据库把文件解压到根目录然后改zb_users/c_option.php里的数据库连接信息。这里有个容易忽略的点如果新旧服务器的数据库用户名密码不一样一定要手动改这个文件光导入数据是连不上的。改完之后访问后台能正常打开并看到文章列表迁移就算成了最后别忘了把伪静态规则在新服务器上重新配一遍。6. 长期维护里我踩出来的几条经验程序装完只是开始真正决定一个博客能不能活下去的是后面这些琐碎的事。我最想说的是备份这件事等到丢过一次数据你才会明白它的分量。我有一次迁移的时候忘了导出数据库只打包了文件结果新站上线发现文章全没了评论也没了那批内容虽然不多但都是原创写的找不回来。从那以后我养成习惯任何涉及改动环境的操作之前先导一次数据库这个动作花不了两分钟。第二个经验是关于插件冲突的如果你发现前台某个功能忽然不正常第一反应应该是停最近装的那个插件而不是去改代码。先在后台把插件禁掉试试问题消失就说明找到源头了然后去插件目录看它的说明和更新记录能找到作者说明最好找不到就换一个同类插件别硬修别人的代码下次更新又会覆盖掉。第三个经验是别急着一次把功能配全。我第一版博客装了一堆插件后来发现大部分功能半年都没打开过一次反而拖慢了后台。现在我的原则是遇到问题才装插件用不上的全卸掉。博客的核心永远是内容模板配色改十遍不如多写一篇有价值的文章。你要是刚开始做先把发布流程跑顺剩下的慢慢来能坚持写下去比什么都重要。
返回列表