在OS X上安装pecl和pear 10.11 El Capitan,macOS 10.12 Sierra,macOS 10.13 High Sierra

axl*_*otl 48 php macos pear pecl

所以看起来新的'系统完整性保护' 锁定/usr(以及其他目录)使得梨和pecl成为非首发.有没有人找到一个解决方法而不是禁用它?

Pau*_*ber 66

有一种更简单的方法 - 无需禁用SIP或下载自己的副本:

sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于macOS High Sierra版本10.13.3`无法打开输入文件:/ usr/lib/php/install-pear-nozlib.phar` (27认同)
  • 这很棒!但是当我尝试使用`sudo pecl install`安装扩展时,我得到:`错误:无法编写/ usr/lib/php/extensions/...`我怎样才能解决这个问题? (3认同)
  • 同样不适用于Mohave:`无法打开输入文件:/ usr / lib / php / install-pear-nozlib.phar` (3认同)

ken*_*orb 57

您不应该将二进制文件安装到系统中/usr,/usr/local而是使用它.


通过Homebrew安装时,peclpear命令应该与PHP一起出现.

以下是使用最新的Homebrew安装PHP的示例:

brew install php
Run Code Online (Sandbox Code Playgroud)

或具体版本:

brew install php@7.1
brew install php@5.6
Run Code Online (Sandbox Code Playgroud)

要查找peclpear命令,请运行:

find -L "$(brew --prefix php)" -name pecl -o -name pear
Run Code Online (Sandbox Code Playgroud)

要么:

find -L "$(brew --prefix php@7.1)" -name pecl -o -name pear
Run Code Online (Sandbox Code Playgroud)

如果您没有,请考虑卸载以前的PHP版本或运行reinstall.

您还可以尝试通过以下方式重新链接:

brew unlink php@7.1 && brew link php@7.1 --dry-run && brew link --overwrite --force php@7.1
Run Code Online (Sandbox Code Playgroud)

否则,手动链接:

ln -vs "$(find -L "$(brew --prefix php@7.1)/bin" -name pecl)" /usr/local/bin
ln -vs "$(find -L "$(brew --prefix php@7.1)/bin" -name pear)" /usr/local/bin
Run Code Online (Sandbox Code Playgroud)

或者直接下载Pear it作为Phar包:

curl -o /usr/local/bin/pear http://pear.php.net/go-pear.phar
chmod +x /usr/local/bin/pear
Run Code Online (Sandbox Code Playgroud)

或者使用下面的单行程序(可以在Linux上运行,但不能在Unix上运行):

curl -sL http://pear.php.net/go-pear.phar | sudo install -v -m755 /dev/stdin /usr/local/bin/pear
Run Code Online (Sandbox Code Playgroud)

  • @GregoryBell感谢您的好评.使用`--with-pear`安装PHP应正确安装pear(在`/ usr/local/opt/php56/bin/pear`中).然后`brew链接php56`将其二进制文件链接到`/ usr/local/bin/pear`. (2认同)

Ser*_*nov 39

从以下链接:http://jason.pureconcepts.net/2012/10/install-pear-pecl-mac-os-x/使用此说明,您无需禁用"系统完整性保护"

以下说明在/ usr/local /下的Mac OS X上安装PEAR和PECL .PECL与PEAR捆绑在一起.所以这就像在Mac OS X上安装PEAR一样简单.

PEAR是PHP的Package Repository,可以轻松下载和安装PHPUnit和XDebug等PHP工具.我特别为每个PHP开发人员推荐这两个.

下载PEAR

curl -O https://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar
Run Code Online (Sandbox Code Playgroud)

配置并安装PEAR

您现在应该提示配置PEAR.

  1. 输入1并按return.
  2. 输入:

    /usr/local/pear
    
    Run Code Online (Sandbox Code Playgroud)
  3. 输入4并按return.

  4. 输入:

    /usr/local/bin
    
    Run Code Online (Sandbox Code Playgroud)
  5. return

验证PEAR.

你应该能够输入:

pear version
Run Code Online (Sandbox Code Playgroud)

最后,如果您使用PEAR的任何扩展或应用程序,您可能需要更新PHP的包含路径.


Dan*_*nce 5

在Mohave上,我必须运行以下命令-感谢转到https://tobschall.de/2018/08/07/pear-on-mojave/

cd /tmp
curl -s -O https://pear.php.net/install-pear-nozlib.phar
sudo php install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
Run Code Online (Sandbox Code Playgroud)