1. 部署前先搞明白:Emlog需要什么,为什么选它
1.1 Emlog是什么,和WordPress、Typecho有什么区别
先说结论:Emlog是一款基于PHP+MySQL的轻量级博客程序,中文互联网圈子里一直有人用它,因为够轻、够快、后台干净。前阵子帮朋友把博客从虚拟主机迁到云服务器,选型时对比了一轮WordPress、Typecho和Emlog,最终定了Emlog——原因很简单,这位朋友就是纯粹想写技术文章,不需要商城、不需要复杂会员体系,也不想去折腾一大堆重型插件。
Emlog和WordPress的区别非常明显。WordPress能占掉半壁江山,靠的是庞大的插件和主题生态,但代价是系统本身很重,一台1核1G的小服务器跑起来内存吃紧,后台各个页面加载也能感觉到延迟。Emlog则反着来,安装包很小,没有一堆默认启用的功能模块,访问速度天然有优势。Typecho和Emlog同属轻量级阵营,但Typecho更偏极客风格,喜欢简洁的开发者用得多,主题和插件的数量、更新频率都不如Emlog在中文博客场景里积累得深厚。如果你有运营中文个人博客的需求,Emlog的后台操作逻辑更接近普通国内用户的使用习惯,上手门槛低很多。
我用一个表格把三者的核心差异列出来,方便你判断:
| 对比项 | Emlog | WordPress | Typecho |
|---|---|---|---|
| 系统定位 | 轻量级博客 | 全功能CMS | 轻量级博客 |
| 运行环境 | PHP + MySQL | PHP + MySQL | PHP + SQLite/MySQL |
| 安装包体积 | 非常小 | 较大 | 很小 |
| 后台上手难度 | 低 | 中等 | 中等 |
| 插件/模板生态 | 中等,中文资源多 | 非常丰富 | 偏少,更新慢 |
| 适合场景 | 个人博客、简单内容站 | 企业站、复杂站点 | 极客个人博客 |
1.2 一次完整部署涉及哪些组件
很多人以为“部署Emlog”就是把程序传到服务器上,然后点几下安装,其实背后牵涉到一整套运行环境。Emlog依赖三个核心组件:Web服务器(负责接收HTTP请求并返回页面)、PHP解释器(负责执行Emlog的PHP代码)、数据库(负责存文章、评论、配置等数据)。三个组件缺一不可,而且要协同工作。
这里就是宝塔面板发挥价值的地方。宝塔本身不是博客系统,它是一个服务器管理面板,把Nginx、MySQL、PHP-FPM这些底层组件的安装、配置、启停都集成成了可视化操作。换句话说,宝塔帮你省掉了手动编译环境、写配置文件的步骤,你只需要在面板里点几下,就能把环境准备好。
部署任务拆开看是这样的:买服务器 → 安装宝塔面板 → 在面板里安装LNMP环境 → 创建站点和数据库 → 把Emlog程序放到站点目录 → 运行安装向导 → 配置域名、HTTPS、伪静态。这个流程里,真正需要你动脑的地方是环境版本选择和程序配置,其余大部分操作宝塔都能辅助完成,这也是“一键部署”这个说法的来源。
1.3 “一键部署”的真实过程:宝塔做了什么
宝塔软件商店里有一项“一键部署”功能,支持WordPress、Emlog、Typecho、Discuz等常用建站程序。它做的事情,说白了就是替你把三件事自动完成:下载程序源码、创建站点、创建数据库。你在面板里填一个域名,选择一个PHP版本,宝塔就把站点目录建好、数据库建好、程序文件下载好,最后你只需要访问域名进入安装向导。
但“一键”不等于“无脑”。我见过很多人以为点完一键部署就能直接访问站点,结果页面打不开,原因往往是LNMP环境还没装,或者域名解析没做好,又或者是安全组端口没放行。宝塔的一键部署只是在“环境已经OK”的前提下帮你省了手动上传的工序,它替代不了基础环境准备。另外,一键部署使用的程序版本通常是宝塔维护的下载源,可能不是你想要的“最新版”。如果你追求新版本,或者想完全掌控部署过程,手动上传安装会更稳妥。
所以这篇教程我会把两条路线都讲清楚,先带你准备服务器和环境,再对比一键部署与手动安装的区别,最后把上线后的HTTPS、伪静态、安全加固一起收尾。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 服务器准备与宝塔安装:这一步卡住的人最多
2.1 服务器选购与系统选择
部署Emlog对服务器配置的要求不高,个人博客场景下,1核2G内存、3M带宽起步就够用了。如果预算有限,1核1G也能跑,但MySQL和PHP-FPM同时运行后内存会比较紧张,面板操作偶尔会卡。我一般建议至少2G内存,多出来的内存可以留给系统缓存,访问体验会好很多。带宽方面,纯文字博客的并发请求不大,3M带宽足够日常访问,但如果你准备传大量图片,带宽可以提到5M或更高。
系统选择上,宝塔面板官方支持CentOS、Ubuntu、Debian等主流Linux发行版。这里要特别提醒一点:老教程里清一色推荐CentOS 7,但CentOS 7已经停止维护,不再有安全更新,新服务器不要再选了。我现在的习惯是:Ubuntu 22.04 LTS或Debian 12优先,这两个系统的软件源更新及时,宝塔兼容性也做得很好。如果你手里的服务器是阿里云、腾讯云的新实例,默认镜像里这两个系统都能直接在控制台选好。
一个简单对照表:
| 系统 | 推荐版本 | 说明 |
|---|---|---|
| Ubuntu | 22.04 LTS / 24.04 LTS | 首选,文档多,宝塔支持好 |
| Debian | 12 | 稳定省资源,适合低配服务器 |
| CentOS | 不推荐新装 | 7已停止维护,Classic 8也已停止维护 |
2.2 通过SSH连接服务器并安装宝塔面板
服务器买好后,需要先通过SSH连接到服务器,然后执行宝塔的安装脚本。Windows系统可以用自带的终端(Windows 10以上版本自带OpenSSH客户端)连接,也可以用Xshell、PuTTY这类工具。macOS和Linux直接在终端里执行命令即可。
连接命令非常简单:
bash复制ssh root@你的服务器IP
回车后会提示输入密码,输入root密码就登录进去了。如果端口不是默认的22,需要加参数,比如:
bash复制ssh -p 端口号 root@你的服务器IP
登录成功后,接下来安装宝塔面板。安装命令我不是很建议你手动从别的地方复制,而是直接去宝塔官网看,因为官方会定期调整安装入口和脚本。官网首页会根据你访问的系统自动展示对应的安装命令,复制后到服务器终端执行即可。用Ubuntu或Debian时,命令大致形式是:
bash复制wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
实际执行时以官网展示的命令为准,不同时期版本号会变化。安装过程需要几分钟到十几分钟不等,期间屏幕上会滚动大量日志,耐心等它跑完。安装完成后,终端会输出面板访问地址、默认用户名和密码,这几行信息务必先保存下来,后面登录面板要用。
2.3 防火墙与安全组的端口放行
这一步是新手最容易忽略、也最容易卡住的地方。服务器端口不通,面板就访问不了,网站也访问不了,但很多人在系统里翻来覆去找原因,其实问题出在云控制台的“安全组”规则。
现在的云服务器有两个层面的防火墙:一个是服务器系统自带的防火墙(比如Ubuntu的UFW、CentOS的firewalld),另一个是云厂商控制台里的“安全组”。二者只要有一个没放行对应端口,外网就无法访问。
部署Emlog需要放行的端口主要有这几个:
| 端口 | 用途 | 是否必须开放 |
|---|---|---|
| 22 | SSH远程连接 | 必须,建议修改默认端口 |
| 80 | HTTP网站访问 | 必须 |
| 443 | HTTPS网站访问 | 必须 |
| 8888 | 宝塔面板入口 | 必须,修改后按新端口放行 |
| 888 | phpMyAdmin | 不建议开放,用完即关 |
| 3306 | 数据库远程连接 | 绝对不能开放 |
安全组的操作路径大同小异:登录云厂商控制台 → 找到实例 → 安全组 → 配置规则 → 添加入站规则。端口填完后保存,一般秒级生效。如果你的宝塔面板地址在浏览器里打不开,第一排查项就是安全组有没有放行8888端口,而不是去重装面板。这个坑我踩过不止一次,后来每次装完宝塔第一件事就是先检查安全组。
3. 宝塔面板初始化与LNMP环境配置:版本选对,后面少踩很多坑
3.1 首次登录面板与必做设置
安装完成后,浏览器打开终端里输出的面板地址,会进入宝塔的登录页。第一次登录会要求绑定宝塔官网账号,这个按要求注册绑定就好,属于正常流程。登录进去后,面板会弹出一个推荐的软件安装列表,通常就是LNMP或LAMP环境,这里直接选LNMP一键安装即可。
但在点安装之前,我建议先把面板本身的几项安全设置改掉。第一,修改面板入口路径,默认是类似/login这种,把它改成一段只有你知道的字符串;第二,修改面板端口,默认的8888太容易被扫描到,换成一段高位端口;第三,修改默认用户名和密码,不要用安装时生成的弱口令。这些设置都在“面板设置”里,操作不难,但能省去后面被爆破的很多麻烦。
还有一个细节:首次打开面板地址时,浏览器可能会提示“连接不安全”或“证书无效”。这是因为宝塔面板默认使用自签名HTTPS证书,属于正常现象,选择“高级—继续前往”即可。如果你完全不想看到这个提示,可以等后面自己的域名解析好后,在面板设置里绑定域名并申请正式证书,这个问题就不存在了。
3.2 一键安装LNMP环境版本选择
进入“软件商店”,找到“一键安装”或“运行环境”分类,选择LNMP(Nginx + MySQL + PHP)后,会要求选择各组件版本。这里的选择会影响后续Emlog的运行稳定性和兼容性,我说下自己的选型逻辑。
PHP版本建议选8.1。Emlog Pro新版对PHP 8.1的兼容性很成熟,性能也比7.4好。如果你后续要用的插件还停留在老版本,可能需要切回7.4,所以宝塔里可以同时安装两个PHP版本(比如8.1和7.4),站点设置里能随时切换,切换后重启一下PHP-FPM即可,这个机制很实用。
MySQL版本方面,新服务器我建议选MySQL 5.7或8.0。Emlog对这两种版本都能正常连接使用,区别在于资源占用:MySQL 8.0功能更强,但内存占用比5.7高一些;如果服务器只有1G内存,5.7会更从容。贪稳定省内存的话,也可以选MariaDB 10.11,它和MySQL协议兼容,宝塔和Emlog都认。
Nginx直接选最新稳定版即可,比如1.24。Nginx在这里负责接收用户请求、转发给PHP-FPM处理、返回页面,稳定版即可,不必追新。
选完版本后点击安装,整个过程会持续10到30分钟,具体看服务器性能和网络速度。装完后可以看一眼“首页”的资源监控,确认Nginx、MySQL、PHP-FPM三个服务都在运行状态。
3.3 安装PHP扩展与调整上传限制
LNMP环境装好之后,Emlog并不一定能直接跑起来,因为PHP还缺一些扩展。Emlog运行需要的关键扩展包括:pdo_mysql或mysqli(连数据库)、curl(发起HTTP请求)、gd(生成缩略图)、mbstring(处理中文编码)、openssl(HTTPS相关)、fileinfo(上传文件类型识别)。宝塔的LNMP一键安装默认会带上其中大部分,但建议还是主动检查一遍。
操作路径是:软件商店 → PHP设置(进入对应PHP版本) → 安装扩展。检查pdo_mysql、curl、gd、mbstring这几个是否已安装,没装的直接点安装。装完扩展记得重启PHP-FPM。
另一个容易被忽略的是PHP的上传限制。默认的upload_max_filesize通常只有2M,post_max_size也只有8M,上传主题压缩包、插件包、带图片的文章时经常失败。我一般会在“PHP设置—配置修改”里把这两项调到64M或128M,同时把max_execution_time调整为120秒,避免安装和上传过程超时。修改后同样要重启PHP-FPM。
4. 两条部署路线:应用商店一键部署与手动上传安装
4.1 路线对比:什么情况选哪种
同样是部署Emlog,宝塔提供了两种方式。应用商店一键部署适合第一次上手、追求效率的朋友;手动上传安装适合想要最新版、需要清晰掌握目录结构、以及后续要迁移或排错的人。我的建议是:如果是第一次部署,可以用一键部署快速把站点跑起来,但一定要再读一遍手动安装的流程,因为当你遇到故障时,不理解“程序放在哪、数据库配置在哪”就无从排查。
两种方式的核心区别如下:
| 对比项 | 应用商店一键部署 | 手动上传安装 |
|---|---|---|
| 操作步骤 | 少,填域名即可 | 多,需自行上传/解压/授权 |
| 程序版本 | 以宝塔源为准,可能略旧 | 可自行下载最新版 |
| 站点目录 | 自动创建 | 自动创建 |
| 数据库 | 自动创建 | 自动创建 |
| 可控性 | 较低 | 较高 |
| 适合人群 | 新手、快速上线 | 需要版本控制、熟悉部署流程的人 |
4.2 路线一:宝塔应用商店一键部署Emlog
进入宝塔面板的“软件商店”,顶部导航里找到“一键部署”,在列表里找到Emlog,点击“一键部署”。此时会弹出一个表单,需要填写域名(比如blog.example.com,如果还没有域名也可以填服务器IP),选择PHP版本(选刚才装好的8.1),填写数据库账号和密码,或者让宝塔自动生成。
提交后,宝塔会自动完成三件事:创建站点目录、创建数据库、下载并解压Emlog程序文件。整个过程大约一两分钟。完成后,面板会提示部署成功,并显示站点地址和数据库信息。
接下来访问你填写的域名或IP,正常会进入Emlog的安装向导页面。如果打不开,优先检查域名解析是否已生效、安全组80端口是否放行、Nginx是否运行中。一键部署的站点目录默认在/www/wwwroot/你的域名下,数据库信息可以在“数据库”菜单里找到,备好这些信息后进入第五章的安装流程即可。
4.3 路线二:手动下载源码、创建站点、上传部署
手动安装的第一步是下载Emlog源码。打开Emlog官网,在下载页面获取最新版的安装包(一般是zip压缩包),下载到本地。接下来在宝塔面板“网站”菜单里点击“添加站点”,填上域名,选择PHP版本,数据库选择“创建数据库”,填一个数据库名和密码,提交后宝塔会同时创建站点和数据库。
站点创建好后,打开“文件”菜单,进入对应域名的根目录,一般路径是/www/wwwroot/你的域名。把刚才下载的Emlog安装包zip文件上传到这个目录里,然后右键解压。解压后目录里多了一个文件夹,比如emlog_pro_x.x.x,你需要把里面的所有文件移动到站点根目录,确保站点根目录下能直接看到index.php。移动文件在宝塔的文件管理里就是“全选—剪切—粘贴”,操作很直观。
文件就位后,一个非常关键的步骤是目录权限和属主设置。Nginx和PHP-FPM的运行用户是www,如果目录属主不对,Emlog会报“目录不可写”或者安装失败。在终端里执行:
bash复制chown -R www:www /www/wwwroot/你的域名
chmod -R 755 /www/wwwroot/你的域名
这两条命令把站点目录的所有者改为www用户,并给予755权限。如果不方便用终端,也可以在宝塔文件管理器里选中目录,“权限”按钮里修改,但建议学会用命令行,排错时会方便很多。
手动安装还有一个容易漏掉的点:伪静态规则。Emlog官网文档提供了Nginx下的伪静态规则,需要复制到“站点设置—伪静态”里保存,否则程序虽然能安装,但访问文章链接会出现404。具体规则我放在第六章详细讲。
5. 安装向导与站点上线:从填数据库表单到后台可登录
5.1 访问安装向导并填写数据库信息
不管用哪种方式部署,最终都要访问Emlog的安装向导。在浏览器里打开http://你的域名/install.php,或者直接访问http://你的域名,Emlog检测到尚未安装时会自动跳转。
安装向导的第一页是环境检查和数据库信息填写。数据库相关的字段有:数据库主机(默认localhost)、数据库端口(默认3306)、数据库用户名、数据库密码、数据库名、表前缀(默认emlog_)。这些信息去哪里找?打开宝塔面板的“数据库”菜单,找到你创建的那个数据库,点击后面的“详情”或“管理”,就能看到完整的用户名、密码、数据库名和端口。数据库主机就用localhost,不要填服务器公网IP,因为Emlog和MySQL在同一台机器上,走本地连接更快更安全。
表前缀默认emlog_即可,除非你想在同一数据库里装多个Emlog,那可以改成不同的前缀来区分。填完这些,Emlog会自动创建数据表,不需要你提前去phpMyAdmin里建任何表。
5.2 创建管理员账号与后台登录
数据库信息通过验证后,安装向导会进入第二步:创建管理员账号。这里需要填写管理员用户名、登录密码和管理员邮箱。密码一定要用强密码,至少要包含大小写字母、数字和特殊字符。不要觉得博客没什么攻击价值就随手填个123456,Emlog后台一旦被爆破,轻则站点被植入垃圾文章,重则服务器被挂马,这个代价远大于设置密码的几秒钟成本。
填好后点击安装,几秒钟后就会看到安装成功的提示。此时访问http://你的域名/admin,用刚才设置的管理员账号登录后台。登录进去后,默认的后台地址就是/admin,这个路径很显眼。如果不想让人一眼猜到后台入口,可以修改程序文件把后台目录换掉,或者依赖服务器端的访问限制(比如只允许指定IP访问/admin路径)。个人博客的话,至少把管理员用户名改掉,这个最不折腾也最有效。
登录后台后,先看一眼“设置”里的“基本信息”。站点名称、副标题、站点描述这些基础信息建议第一时间填好,它们会影响浏览器标签栏显示、SEO标题和首页展示。时区这里重点提一下:默认可能是UTC,国内访问会出现文章发布时间差8小时的问题,后台设置里直接选Asia/Shanghai(北京时间)即可。
5.3 固定链接:上线前的最后一道设置
固定链接是Emlog后台里非常影响体验的一项设置。Emlog默认的文章链接可能是?post=123这种带查询参数的URL,虽然能访问,但对搜索引擎不友好,也不好看。打开后台“设置—固定链接”,可以选择不同的URL模式。我一般选择“简洁模式”,它会生成类似/post/123.html的链接,清爽很多。
关键点是:切换固定链接模式时,站点Nginx必须配置对应的伪静态规则,否则链接会全部404。这个顺序不要搞反:先在宝塔“站点设置—伪静态”里粘贴好Emlog规则,再到后台切换固定链接模式。已经切换完才发现404也没关系,马上补上规则,刷新页面通常就正常了。
6. 站点上线后的关键配置与高频报错排查
6.1 HTTPS证书配置与强制跳转
站点上线后,第一件事就是配置HTTPS。现在的浏览器对未加密的HTTP站点会直接标“不安全”,而且HTTP内容容易被运营商篡改,搜索引擎也更愿意收录HTTPS页面。宝塔面板申请免费SSL证书非常方便:进入“站点设置—SSL”,选择Let‘s Encrypt证书,勾选你要的域名,点击申请。一般一两分钟内证书就会自动签发并部署到Nginx。
申请完证书后,把“强制HTTPS”的开关打开,这样用户访问HTTP地址时会自动跳转到HTTPS。如果打开强制HTTPS后发现页面无法访问,基本是证书还没生效或者Nginx没有重载成功,去“SSL”页面确认证书状态,再重启一下Nginx即可。
如果你遇到浏览器报“此站点的连接不安全”或者err_ssl_version_or_cipher这类错误,原因通常不是证书没装,而是服务器支持的TLS版本与浏览器不匹配,比如某端服务器只开了TLSv1.0/1.1,而现代浏览器默认禁用了这些老旧协议。宝塔默认的TLS配置一般不会踩这个坑,但如果你改动过Nginx配置,检查一下/www/server/panel/vhost/nginx/你的站点.conf里的ssl_protocols,确保至少包含TLSv1.2 TLSv1.3。另外,如果你的域名在国内服务器上解析,还要确认域名备案状态正常,否则HTTPS证书申请和访问都可能受阻,具体以服务商规则为准。
6.2 伪静态规则配置与常见404排查
Emlog的Nginx伪静态规则,我在部署时用的版本如下(以Emlog官方文档为准):
nginx复制location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^/(.+)$ /index.php?$1 last;
}
}
在宝塔面板的“站点设置—伪静态”里,把这段规则粘贴进去,保存后Nginx会自动重载。如果你用的Emlog版本较新,官方文档里的规则可能有细节调整,以官网为准。
伪静态配置后常见的现象是:网站首页能打开,但点击文章链接全部404。这时候按顺序检查三处:第一,伪静态规则有没有保存成功,去“站点设置—伪静态”看一眼内容是否还在;第二,站点根目录下的.htaccess(如果用Nginx则不依赖它)或宝塔的配置文件是否加载正确;第三,是否开启了“防跨站攻击”限制,宝塔默认的open_basedir如果配置不当,会拦截Emlog访问站点目录外的文件,导致404或白屏。可以在“站点设置—网站目录”里关闭“防跨站攻击”或把允许访问的目录范围放宽,然后重启Nginx测试。
6.3 部署中高频报错排查实录
部署Emlog时最容易碰到的几个报错,我整理成一张排查表,方便你对照:
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 安装时提示“数据库连接失败” | 数据库密码填错、数据库不存在、数据库用户无权限 | 去宝塔数据库菜单核对信息,确认库名、用户名、密码完全一致 |
| 安装后首页白屏 | PHP版本不兼容、缺少扩展、PHP错误被隐藏 | 在PHP设置里临时开启display_errors=On,访问页面看具体报错;检查PHP扩展 |
| 后台能进,文章页404 | 伪静态规则未生效或未填写 | 补上Nginx伪静态规则,保存并重启Nginx |
| 上传模板/插件失败 | PHP上传限制太小、目录无写权限 | 调整upload_max_filesize和post_max_size;执行chown -R www:www 站点目录 |
| 安装时提示“程序已安装” | install目录或锁文件存在 | 删除站点根目录下的install.php或install.lock文件再试 |
| 打开站点提示数据库连接错误 | MySQL没有启动、或数据库密码被修改过 | 宝塔首页看MySQL进程状态,重启MySQL |
排查任何问题,第一步都是把错误日志打开。宝塔的“网站—站点设置—配置文件”里能看到错误日志路径,PHP的报错日志在“软件商店—PHP设置—配置修改”里调整log_errors和error_log参数。很多看起来诡异的白屏问题,日志一打开就真相大白,不要凭感觉瞎改配置。
6.4 安全加固与日常备份建议
站点稳定运行后,安全方面不能完全躺着不管。我的习惯是上线后立刻做这四件事:第一,修改SSH端口,避免22端口被全网扫描爆破;第二,修改宝塔面板端口和面板入口路径,面板不对外开放就更安全;第三,数据库远程连接关掉,3306端口千万不要开放到公网,Emlog和MySQL都在本机,根本不需要远程连数据库;第四,定期更新Emlog程序、模板和插件,更新前先备份。
备份这件事我自己也吃过亏,有一次给客户升级Emlog插件,升级完发现新版插件有兼容问题,文章列表整个打不开。幸好提前在宝塔“计划任务”里配了网站文件和数据库的每日备份,直接恢复,十分钟搞定。强烈建议在宝塔“计划任务”里添加两条任务:一条备份站点目录(/www/wwwroot/你的域名),一条备份数据库,执行周期选每天或每周,保留最近几份即可。备份目标最好也填一个云存储,这样即使服务器磁盘出问题也能保住数据。
最后说一点个人体会。部署Emlog这件事,本身难度并不高,真正让你抓狂的往往不是Emlog或宝塔,而是服务器初始状态不一样:有的服务器安全组默认没放行端口,有的PHP版本过老,有的目录权限不对。所以我的做法是,第一次部署的时候就把每一步操作记录下来,包括系统版本、安装的PHP和MySQL版本、修改过的参数、伪静态规则都记在一个文档里。之后不管是重装服务器还是给别人部署,照着这份笔记走,能少走太多弯路。这个习惯,比任何一键部署工具都值钱。
