meilisearch 不是 php 原生扩展,无需也无法通过 php.ini 或 pecl 安装;它是一个独立 http 服务,php 项目需用 composer 安装 meilisearch/meilisearch-php sdk 并通过 guzzle 调用其 api。

phpEnv 本身不提供 MeiliSearch 扩展——它不是 PHP 的原生扩展(如 redis 或 curl),而是一个独立的 Rust 编写的 HTTP 服务。你在 phpEnv 环境里要做的,不是“安装 MeiliSearch 扩展”,而是让 PHP 项目能通过 HTTP 客户端(比如 Guzzle)调用本地或远程运行的 MeiliSearch 实例。
为什么 phpEnv 下找不到 meilisearch 扩展?
MeiliSearch 没有、也不会提供 PHP 的 .so 或 .dll 扩展模块。它的官方 PHP SDK meilisearch/meilisearch-php 是纯 Composer 包,依赖 guzzlehttp/guzzle 发起 HTTP 请求。这意味着:
- 你不需要也不应该尝试用
pecl install或修改php.ini加载meilisearch.so—— 这个文件根本不存在; - phpEnv 的「扩展管理」界面里不会出现 MeiliSearch,因为它不属于 PHP 扩展生态;
- 混淆点常来自“PHP 扩展”和“PHP 第三方库”的概念错位:前者是 C 编写的底层模块,后者是 PHP 写的可复用代码包。
在 phpEnv 中正确接入 MeiliSearch 的三步
前提是你的 phpEnv 已启用 cURL 和 JSON(默认开启),且能访问外网(用于 Composer):
- 打开终端,cd 到你的项目根目录(不是 phpEnv 安装目录);
- 执行:
composer require meilisearch/meilisearch-php guzzlehttp/guzzle:^7.5(注意:MeiliSearch PHP SDK v1.x 要求 Guzzle 7+,Guzzle 8+ 需用 SDK v2); - 确保 phpEnv 使用的 PHP 版本 ≥ 7.4(SDK v1 支持 7.4–8.2;v2 要求 ≥ 8.1);可通过
php -v和php --ini确认 CLI 使用的是 phpEnv 的 PHP,而非系统默认版本。
phpEnv + MeiliSearch 常见连通失败原因
即使 Composer 安装成功,$client = new Client('http://127.0.0.1:7700') 仍可能报 cURL error 7 或超时,典型原因有:
- MeiliSearch 服务根本没运行:phpEnv 不自动启动 MeiliSearch,你得单独运行它(Docker 或二进制方式);
- 端口被占用或防火墙拦截:phpEnv 默认不开放 7700 端口,确认
netstat -ano | findstr :7700(Windows)或lsof -i :7700(macOS/Linux)有进程监听; - 地址写错:用
127.0.0.1而非localhost(某些 phpEnv 配置下localhost解析慢或失败); - master key 未匹配:如果 MeiliSearch 启动时加了
--master-key=xxx,PHP 客户端初始化必须传入:new Client('http://127.0.0.1:7700', 'xxx')。
真正需要花时间调试的,从来不是 Composer 命令是否敲对,而是 PHP 进程能否从 phpEnv 的运行环境中,稳定触达那个在后台静默监听 7700 端口的 MeiliSearch 进程——这两者之间没有父子关系,只有网络可达性这一条命脉。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











