错误:无法写入,无法打开流,PECL 在 Mac OSX El Capitan 上安装 OAuth


error: failed to write, failed to open stream, pecl install oauth on mac osx el capitan

我正在尝试使用 pecl 安装在本地安装 OAuth 版本 1.2.3(在 Mac OSX El Capitan 上运行 PHP 5.6.10)。在命令提示符下运行以下命令:

sudo pecl install oauth-1.2.3

安装开始正常,并且在构建完成之前没有错误地运行。然后我得到这个错误:

Build process completed successfully
Installing '/usr/lib/php/extensions/no-debug-non-zts-20121212/oauth.so'
ERROR: failed to write /usr/lib/php/extensions/no-debug-non-zts-`20121212/oauth.so 
(copy(/usr/lib/php/extensions/no-debug-non-zts-20121212/oauth.so): 
failed to open stream: Operation not permitted)`

ls 在文件夹 no-debug-non-zts-20121212 中没有显示 oauth.so,但除此之外,文件夹看起来不错。

我尝试过的事情:- 更新梨和PECL- 更新 MAMP- 重新启动网络服务器- 重新启动计算机

我没了可以尝试的事情的想法。以前听说过这个问题的人吗?

您需要禁用系统完整性保护。

  1. 重新启动Mac并在听到启动提示音后同时按住Command + R键,这将使OS X进入恢复模式。
  2. 出现"OS X实用程序"屏幕时,下拉屏幕顶部的"实用程序"菜单,然后选择"终端"。
  3. 在终端中键入以下命令,然后按回车键: csrutil disable

  4. 您将看到一条信息,指出系统完整性保护已禁用,Mac 需要重新启动才能使更改生效。

  5. 输入reboot命令,然后Mac将自动重新启动,只需让它正常启动即可。

然后重试sudo pecl install oauth-1.2.3。在/usr/lib/php/extensions/no-debug-non-zts-20121212/中正确安装 oauth.so 后,您应该再次启用 SIP(毕竟,这是一项保护我们系统的功能,因此最好保持打开状态)。

参考资料:

  • 在 Mac OSX 10.11 El Capitan 上为 Development Server 安装 mcrypt for php。
  • 如何在OS X El Capitan中禁用系统完整性保护(无根)。
启用

/禁用系统完整性保护是一个令人头疼的问题...相反,请点击此链接并更改您的 PHP 目录路径。

http://mrgott.com/misc/10-install-mcrypt-and-intl-php-extensions-on-mac-os-x-and-xampp