php - MongoDB php驱动程序导致XAMPP OS X上的apache失败

标签 php macos apache mongodb xampp

自从升级到 Mac OS X El Capitan 后,如果我尝试在 php.ini 文件中包含“extension=mongo.so”的 XAMPP 中启动 apache,则 apache 无法启动。如果我删除它,apache 会正常启动。 Mongo 使用包含的 pecl 命令安装在我的 XAMPP 构建中。这是新操作系统、驱动程序还是 XAMPP 的问题?

编辑:让驱动程序在 MAMP 上正常工作,XAMPP 中一定存在问题

最佳答案

发件人: https://github.com/mongodb/mongo-php-driver/issues/247

PHP 进程加载 mongodb.so 并执行 libmongoc 的 _mongoc_do_init() 函数,该函数在使用 SASL 编译时调用 sasl_client_init()。如果客户端在同一个进程中被初始化和销毁​​多次,我在 OS X 上的早期版本的 Cyrus SASL 中发现了一些关于崩溃的引用;但是,我希望 _mongoc_do_init() 周围的逻辑确保它每个进程只执行一次。我也不确定您安装的 SASL 版本(除了文件名中包含“2.2”的库之外),所以我不确定这是否是一个红鲱鱼。我需要跟进 libmongoc 开发人员进行确认。

同时,您能否提供您的 pecl 安装 mongodb 的日志?那里有一些与 SASL 的配置方式相关的有趣内容(遗憾的是,不是确切的版本号)。

另外,如果您手动构建驱动程序,您应该能够使用 --with-mongodb-sasl=no 参数来配置以禁用 SASL 支持,这可能会解决该问题,直到我们可以进一步诊断它。从 shell 中手动构建的步骤是:

$ cd /path/to/mongo-php-driver
$ phpize
$ ./configure --with-mongodb-sasl=no
$ make clean && make all && make install

如果您正在克隆存储库,这还需要初始化 git 子模块。否则,您应该能够提取 PECL tgz 文件并使用这些源。

关于php - MongoDB php驱动程序导致XAMPP OS X上的apache失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165264/

相关文章:

php - 通过键合并(合并)2 个数组并更改结果数组中的键名

javascript - 为什么我的非常简单的 Chrome 扩展程序在 Mac 上运行,但在 PC 上运行不正常?

macos - 如何在 OS X 中运行 "docker-machine create"?

java - 在 Eureka Streams 之上构建大规模可扩展且安全的社交网络?

php - 执行更新触发器后如何获取之前的记录?

php - 在php中通过对象值从数组中删除对象

php - 树莓派和本地连接(无云)spark 核心之间的合适协议(protocol)

objective-c - 使用 root 权限部署应用程序

ruby-on-rails - 为什么在使用 Safari 和 Apache 2.2.3 获取 Javascript/图像 Assets 时,某些页面请求会挂起?

php - FastCGI 服务器错误 500