【问题标题】:Can't install mongo-php-driver on OS X 10.11无法在 OS X 10.11 上安装 mongo-php-driver
【发布时间】:2024-01-22 22:36:01
【问题描述】:

我已经阅读了所有类似的 Stack Overflow 问题 - 没有任何内容能解决我的具体问题。我正在运行 OS X 10.11 (El Capitan)。

我已经克隆了 mongo-php-drive repo 并且这些命令成功:

phpize
./configure
make

但是sudo make install 失败了:

(master) ~/tmp/mongo-php-driver
$ sudo make install
Installing shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20121212/
cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@39898#: Operation not permitted
make: *** [install-modules] Error 1

我知道这是一个权限问题,但我不知道如何安全地修复它。我不想放松/usr/* 之类的安全性。

任何建议将不胜感激。

【问题讨论】:

  • 当您使用git clone 时,您是否切换到了稳定的分支/标签?如果不是,那么您正在阅读肯定不稳定的“大师”。使用git checkout 切换到支持的版本。
  • 克隆后,我运行 `git branch -v``` 结果是* master 071165f Merge branch 'v1.6'。我是git 的新手——这是否意味着我在最新的稳定分支上(似乎是 v1.6)。如何切换到正确的分支? (感谢您的帮助!)
  • 阅读 git,并在 github 上查看最新的发布标签(最有可能)以了解切换到的详细信息。这里有很多关于如何为标签执行 git checkout 的问题。
  • 我检查并构建了v1.6.10(最新的稳定标签),结果完全一样 - 由于权限问题,它无法安装到/usr/lib/php/extensions/。同样,我想知道更改目录权限的正确/安全方法,以便make install 能够成功。
  • 我已经使用以下链接中的技术成功地重新启用了 mcrypt(将扩展置于不受 SIP 保护的/usr/local)。我很好奇它是否也适用于 mongo(我不明白为什么它不会)。 *.com/a/36991283/728053

标签: php mongodb file-permissions mongodb-php osx-elcapitan


【解决方案1】:

开机时按 cmd+r。然后进入实用程序>终端并键入以下命令:

csrutil disable
reboot

别忘了启用它。

【讨论】:

    【解决方案2】:

    问题是由 OS X 10.11 El Capitan 的 Rootless feature 引起的。为了能够将扩展安装到/usr/lib/php/*,我不得不暂时禁用该功能(instructions - 请记住之后重新启用它)。

    【讨论】:

      最近更新 更多