php - mongo php 驱动程序扩展在 cli 中加载,而不是在 OSX 中加载 apache

标签 php macos mongodb

我正在运行 OSX El Capitan。我已经使用 brew 安装了 mongo 驱动程序:

brew install php70-mongodb

安装完成,似乎可以正常工作。当我在 CLI 上执行“php -m”时,它显示已安装“mongo”。使用 Mongo 驱动程序运行脚本是可行的。 当我试图通过 Apache2 运行相同的脚本时会出现问题。然后,由于以下代码行,我收到未安装 Mongo 的错误消息:

if (!extension_loaded('mongo')) die("MongoDB is not installed!");

phpinfo() 确实显示未安装 Mongo。 我使用以下方法为 apache 创建了一个 php.ini 文件:

cp php.ini.default php.ini

并在文件末尾添加以下行:

extension="/usr/local/opt/php56-mongo/mongo.so"

重新启动 Apache 后,它似乎仍然没有加载。我尝试在同一目录中创建 mongo.so 的副本并授予 _www 所有权(认为可能是这种情况),但仍然没有用。

奇怪的是,系统告诉我我有邮件,从我的 Macbook 发送到我的 Macbook,邮件内容如下:

PHP Warning: PHP Startup: mongo: Unable to initialize module Module compiled with module API=20131226 PHP compiled with module API=20121212 These options need to match in Unknown on line 0

任何关于如何让扩展加载到 Apache 上的帮助将不胜感激!......

最佳答案

看起来我正在运行 PHP 5.5 版,我确实按照 php.net 的说明运行了

brew install php56-mongo

显然,我没有注意到您必须根据安装的版本更改此行。因此,将其更改为:

brew install php55-mongo

并按照有关如何删除已安装的其他版本的 brew 说明(键入此命令后会出现有关如何执行此操作的说明)- 已安装新版本。

之后,我更新了/etc/php.ini 以指向正确的目录(这与之前的安装不同)- 它有效!

关于php - mongo php 驱动程序扩展在 cli 中加载,而不是在 OSX 中加载 apache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38905224/

相关文章:

macos - 什么是 OS X session 类型,它们是什么意思?

objective-c - 如何强制重绘任何应用程序的窗口

mongodb - Azure 数据工厂 - 按日期过滤 Mongodb 源数据集

php - 来自两个表的 $_GET[ID]

php sql 查询不起作用

macos - 如何更改Mac终端中的文本颜色和背景?

linux - 无法在 Ubuntu 14.04 上安装 MongoDB

javascript - Nodejs无法更新mongoDB数组中的索引

php - 我对 sql 部分有困难

php - MySQL查询获取列名?