phpEnv 里找不到 neo4j 扩展,因为 Neo4j 不是 PHP 官方扩展,也没有 Windows 可用的 php-neo4j.dll;PHP 连 Neo4j 全靠 Composer 客户端库(如 laudis/neo4j-php-client),而非 Zend 扩展,故不会出现在 php -m 列表或 phpEnv 扩展管理中。

phpEnv 是 Windows 下的 PHP 环境管理工具(类似 Linux 的 phpenv 或 asdf),但它本身不提供 Neo4j 扩展——neo4j 不是 PHP 官方扩展,也没有 php-neo4j.dll 这种可直接启用的 Zend 扩展。你无法像开启 curl 或 pdo_mysql 那样在 phpEnv 里“安装 Neo4j 扩展”。
为什么 phpEnv 里找不到 neo4j 扩展?
Neo4j 是图数据库,通信协议是 Bolt(二进制)或 HTTP,PHP 没有内置驱动支持它。所谓“PHP 连 Neo4j”,全靠纯 PHP 编写的客户端库(Composer 包),不是 C 编写的 PHP 扩展(即不会出现在 php -m 列表里,也不需要改 php.ini 加 extension=)。
-
neo4j-php-driver(官方 C 扩展)早已停止维护,且不支持 Windows;phpEnv 下完全不可用 -
graphaware/neo4j-php-client、laudis/neo4j-php-client、church/neo4j全是 Composer 库,运行时加载,和 phpEnv 的扩展管理无关 - 你在 phpEnv 的图形界面或
phpenv ext list里搜不到neo4j,这是正常的,不是你漏装了什么
phpEnv 下正确连接 Neo4j 的三步实操
你真正要做的,是在 phpEnv 管理的 PHP 版本下,用 Composer 装一个客户端,并确保 CLI 和 Web(如 Apache/FPM)共用同一套 autoloader。
- 确认当前激活的 PHP 版本:
phpenv version,比如输出8.2.15 - 进入项目目录,执行:
composer require laudis/neo4j-php-client(推荐,活跃维护、Bolt/HTTP 双协议、Laravel 友好) - 写连接代码时注意端口:phpEnv 默认不开放
7687(Bolt),但7474(HTTP)通常可用;若 Neo4j 服务跑在本地,URL 填http://127.0.0.1:7474 - 如果要用 Bolt 协议(性能更好),需手动在 Neo4j 的
conf/neo4j.conf中取消注释:dbms.connector.bolt.enabled=true并重启 Neo4j 服务
常见报错及对应解法
这些错误和 phpEnv 本身无关,但新手常卡在这几步:
立即学习“PHP免费学习笔记(深入)”;
-
cURL error 7: Failed to connect to 127.0.0.1 port 7474: Connection refused→ Neo4j 服务根本没启动,或配置了非默认端口;检查services.bat是否已运行neo4j.bat,或直接访问http://127.0.0.1:7474看是否返回 JSON -
Class 'Laudis\Neo4j\ClientBuilder' not found→ 没执行composer install,或vendor/autoload.php没被引入;确认脚本开头有require __DIR__ . '/vendor/autoload.php'; - Web 页面报 500 但 CLI 正常 → phpEnv 的 Apache/FPM 使用的是另一套 PHP 配置(
phpinfo()查Loaded Configuration File),确保该环境也装了 Composer 依赖(不能只在 CLI 目录下装) - 登录失败:
Unauthorized→ Neo4j 5.x 默认关闭了neo4j/neo4j默认账号;首次启动后必须用浏览器访问http://127.0.0.1:7474设置新密码,或在conf/neo4j.conf中加dbms.security.auth_enabled=false(仅测试用)
真正容易被忽略的点是:phpEnv 管理的是 PHP 解释器本身,而 Neo4j 连接成败,90% 取决于网络通不通、服务起没起、认证对不对——跟扩展启没启用毫无关系。别在 php.ini 里徒劳地找 extension=neo4j,它从来就不存在。



















