meilisearch二进制安装最省事方式是执行curl -l https://install.meilisearch.com | sh,自动适配架构并置于/usr/local/bin/meilisearch;生产环境启动必须显式指定--http-addr 0.0.0.0:7700、--master-key和--db-path三参数,缺一不可。

Linux 上装 MeiliSearch,二进制方式比 Docker 更可控,尤其当你需要持久化、外网访问或集成 systemd 管理时;但直接运行 meilisearch 默认只监听 127.0.0.1:7700,不配主密钥就暴露在公网等于裸奔。
用官方脚本一键安装二进制文件
这是最省事且适配架构的方式,适合大多数 x86_64 / aarch64 服务器:
- 执行
curl -L https://install.meilisearch.com | sh,脚本会自动下载对应 CPU 架构的最新版二进制文件,并放到/usr/local/bin/meilisearch - 验证是否可用:
meilisearch --version,输出类似meilisearch 1.29.0即成功 - 注意:该命令默认不加
sudo,如果提示权限错误,说明当前用户无权写入/usr/local/bin,需加sudo curl -L https://install.meilisearch.com | sh - 别手动改文件名(如重命名为
ms),后续 systemd 或脚本调用容易出错
启动前必须配好的三个关键参数
临时跑 meilisearch 只能本地测试,生产环境必须显式指定以下三项,否则不是连不上就是不安全:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
--http-addr 0.0.0.0:7700:不加这句,默认绑定127.0.0.1,外部机器访问会直接拒绝连接(常见错误:curl: (7) Failed to connect to xxx port 7700: Connection refused) -
--master-key "YourSecureKey123!":不设密钥,API 完全开放,任意人可删库、导出数据;密钥建议至少 16 位,含大小写字母+数字+符号 -
--db-path /var/lib/meilisearch:不指定路径,数据存在内存或临时目录,重启即丢(现象:索引突然消失,GET /indexes返回空数组) - 推荐组合启动命令:
meilisearch --http-addr 0.0.0.0:7700 --master-key "MyKey@2026" --db-path /var/lib/meilisearch --env production
用 systemd 管理服务并开机自启
手动运行进程容易中断,systemd 是 Linux 生产环境的标准做法:
- 先创建数据和日志目录:
sudo mkdir -p /var/lib/meilisearch /var/log/meilisearch,并确保运行用户有写权限(如sudo chown $USER:$USER /var/lib/meilisearch /var/log/meilisearch) - 新建服务文件:
sudo vim /etc/systemd/system/meilisearch.service,内容中ExecStart必须完整包含上述三个参数,例如:ExecStart=/usr/local/bin/meilisearch --http-addr 0.0.0.0:7700 --master-key "MyKey@2026" --db-path /var/lib/meilisearch --env production --log-level INFO
- 启用并启动:
sudo systemctl daemon-reload && sudo systemctl enable meilisearch && sudo systemctl start meilisearch - 查状态:
sudo systemctl status meilisearch,重点关注 “active (running)” 和最后几行日志是否含Server listening on
配置防火墙放行 7700 端口
即使 MeiliSearch 绑定了 0.0.0.0,Linux 防火墙(如 ufw 或 firewalld)仍可能拦截外网请求:
- Ubuntu/Debian:
sudo ufw allow 7700,然后sudo ufw status确认规则生效 - CentOS/Rocky:
sudo firewall-cmd --permanent --add-port=7700/tcp && sudo firewall-cmd --reload - 云服务器(阿里云、腾讯云等):安全组规则也必须单独放行 7700 端口,光配系统防火墙没用
- 验证外网连通性:
curl -v http://你的公网IP:7700,返回 JSON 且 HTTP 状态码为 200 才算真正通了
最容易被忽略的是主密钥和防火墙的双重缺失——前者让 API 失去鉴权,后者让请求根本到不了进程。别跳过任何一步,尤其是 --master-key 和 --http-addr 这两个参数,漏一个,服务就不算真正上线。










