mongo php驱动程序扩展在cli中加载,而不是OSX中的apache
Posted
技术标签:
【中文标题】mongo php驱动程序扩展在cli中加载,而不是OSX中的apache【英文标题】:mongo php driver extension loads in cli, not apache in OSX 【发布时间】:2016-12-18 17:10:50 【问题描述】:我正在运行 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 警告:PHP 启动:mongo:无法初始化模块 使用模块 API=20131226 编译的模块 使用模块 API=20121212 编译的 PHP 这些选项需要匹配 在第 0 行的未知中
任何关于如何让扩展加载到 Apache 上的帮助将不胜感激!......
【问题讨论】:
确实,谢谢,我遇到了类似的问题,我必须为extension
提供正确的 mongodb 设置路径。它与您提供的位置相同。
【参考方案1】:
看起来我正在运行 PHP 5.5 版,并且按照 php.net 的说明运行了
brew install php56-mongo
显然,我错过了您必须根据安装的版本更改此行。因此,将其更改为:
brew install php55-mongo
并按照有关如何删除已安装的其他版本的 brew 说明(键入此命令后将显示如何执行此操作的说明)- 新版本已安装。
之后,我更新了 /etc/php.ini 以指向正确的目录(这与之前的安装不同)——它可以工作了!
【讨论】:
以上是关于mongo php驱动程序扩展在cli中加载,而不是OSX中的apache的主要内容,如果未能解决你的问题,请参考以下文章