phpEnv不提供MeiliSearch扩展,需用Composer安装纯PHP SDK:composer require meilisearch/meilisearch-php;确保cURL和JSON模块启用,并确认MeiliSearch服务已运行且配置正确。

phpEnv 本身不是 PHP 扩展,也不提供 MeiliSearch 的原生 PHP 扩展(比如 meilisearch.so)。它只是一个 Windows 下的 PHP 多版本环境管理工具,类似 phpenv(macOS/Linux),不负责安装搜索引擎服务或客户端库。
你真正需要的,是「在 phpEnv 管理的 PHP 环境中,让 PHP 代码能调用 MeiliSearch」——这靠的是 Composer 安装的纯 PHP SDK,不是 C 扩展。
composer require meilisearch/meilisearch-php 是唯一正解
-
MeiliSearch官方只维护一个 PHP 客户端:纯 PHP 实现,基于GuzzleHttp或 PSR-18 兼容 HTTP 客户端 - 它不依赖任何 PHP C 扩展(不需要编译
.so/.dll),只要你的phpEnv环境里有cURL和JSON模块(默认已启用)就能跑 - 运行前确认:
-
php -m | findstr curl(Windows)或php -m | grep curl(确保输出curl) -
php -m | findstr json(同理,json必须存在) -
php --ini查看当前生效的php.ini路径,避免误配了另一个 PHP 版本
-
phpEnv 下常见连不上 MeiliSearch 的真实原因
phpEnv切换 PHP 版本后,composer可能仍指向旧版 PHP 的 bin 目录,导致composer require装到错的vendor/里
→ 解决:用完整路径运行,例如C:\phpenv\php74\php.exe C:\phpenv\php74\composer.phar require meilisearch/meilisearch-php-
MeiliSearch 服务没起来,或地址/端口/密钥配错
→ 默认是<a href="https://www.php.cn/link/2c97e3fb21c2d302412609ccd0804314">https://www.php.cn/link/2c97e3fb21c2d302412609ccd0804314</a>,若启用了主密钥(MEILI_MASTER_KEY),客户端初始化时必须传:$client = new \MeiliSearch\Client('https://www.php.cn/link/2c97e3fb21c2d302412609ccd0804314', 'your-master-key'); -
Laravel Scout 集成时,
scout.php配置里的meilisearch键名写成meilisearchs或漏掉host字段
→ 正确写法:'meilisearch' => [ 'host' => 'https://www.php.cn/link/2c97e3fb21c2d302412609ccd0804314', 'key' => env('MEILISEARCH_KEY', ''), ],
meilisearch-php 版本与 Guzzle 冲突怎么破
-
meilisearch-php ^0.24要求guzzlehttp/guzzle ^7.5,但phpEnv下某些老项目(如 Laravel 8)自带guzzlehttp/guzzle ^6.5
→ 不要硬升级 Guzzle,改用兼容版 SDK:- 锁定
meilisearch-php为0.19.0(2026 年 4 月仍稳定可用) - 执行:
composer require meilisearch/meilisearch-php:0.19.0 guzzlehttp/guzzle:^6.5
phpEnv+ PHP 7.4 / 8.0 下实测无报错。 - 锁定
phpEnv 环境里没有“MeiliSearch 扩展”这个概念;所有集成都发生在应用层。最容易卡住的地方,其实是 composer 命令没走对 PHP 版本、或者 MeiliSearch 服务压根没在后台运行——这两点比任何代码逻辑都优先。



















