我正在运行 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/