【问题标题】:Installing pecl and pear on OS X 10.11 El Capitan, macOS 10.12 Sierra, macOS 10.13 High Sierra (< 10.13.3)在 OS X 10.11 El Capitan、macOS 10.12 Sierra、macOS 10.13 High Sierra (< 10.13.3) 上安装 pecl 和 pear
【发布时间】:2015-12-29 19:56:33
【问题描述】:

所以看起来 /usr(以及其他目录)的新“系统完整性保护”lockdown 使 pear 和 pecl 无法启动。有没有人找到没有禁用它的解决方法?

【问题讨论】:

  • 最后,我禁用它,做我需要做的,然后重新启用它。
  • 如何禁用和重新启用它?
  • 这里是 Macworld 文章的链接,该文章描述了如何启用和禁用“系统完整性保护”。 macworld.com/article/2986118/security/…

标签: php macos pear pecl


【解决方案1】:

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

sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin

【讨论】:

  • 花了一段时间才接受,因为在我安装 Sierra 并(再次)破坏了我的整个 LAMP 堆栈之前,我不再需要它了。
  • 这很好用!但是当我尝试使用sudo pecl install 安装扩展时,我得到:ERROR: failed to write /usr/lib/php/extensions/... 我该如何解决这个问题?
  • 这不适用于 macOS High Sierra 版本 10.13.3 Could not open input file: /usr/lib/php/install-pear-nozlib.phar
  • 也不适用于 Mohave:Could not open input file: /usr/lib/php/install-pear-nozlib.phar
【解决方案2】:

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


当通过Homebrew 安装时,peclpear 命令应与 PHP 一起提供。

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

brew install php

或具体版本:

brew install php@7.1
brew install php@5.6

要查找您的 peclpear 命令,请运行:

find -L "$(brew --prefix php)" -name pecl -o -name pear

或:

find -L "$(brew --prefix php@7.1)" -name pecl -o -name pear

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

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

brew unlink php@7.1 && brew link php@7.1 --dry-run && brew link --overwrite --force php@7.1

Otherwise,手动链接:

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

或者直接将 Pear 下载为 Phar 包:

curl -o /usr/local/bin/pear http://pear.php.net/go-pear.phar
chmod +x /usr/local/bin/pear

或使用以下单行代码(适用于 Linux,但不适用于 Unix):

curl -sL http://pear.php.net/go-pear.phar | sudo install -v -m755 /dev/stdin /usr/local/bin/pear

【讨论】:

  • @GregoryBell 谢谢你的好收获。使用 --with-pear 安装 PHP 应该正确安装 pear(在 /usr/local/opt/php56/bin/pear 中)。然后brew link php56 将其二进制链接到/usr/local/bin/pear
  • 我必须使用 brew unlink php56 &amp;&amp; brew link php56 --dry-run &amp;&amp; brew link --overwrite php@5.6 --force 才能让它工作,我安装了一个较旧的 php 5.5,但存在一些冲突。
【解决方案3】:

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

以下说明在 Mac OS X 下安装 PEAR 和 PECL /usr/local/。 PECL 与 PEAR 捆绑在一起。所以这很简单 在 Mac OS X 上安装 PEAR。

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

下载梨

curl -O https://pear.php.net/go-pear.phar
sudo php -d detect_unicode=0 go-pear.phar

配置和安装 PEAR

您现在应该会看到配置 PEAR 的提示。

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

    /usr/local/pear
    
  3. 键入 4 并按 return

  4. 输入:

    /usr/local/bin
    
  5. 返回

验证 PEAR。

你应该可以输入:

pear version

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

【讨论】:

    【解决方案4】:

    在 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
    

    【讨论】:

      【解决方案5】:

      High Sierra 设置:

      • 安装 Brew
      • 用 Brew 安装 PHP

      里面有预装的PEAR PACKAGE

      /usr/local/opt/php@<your_version>/bin
      

      你可以从那里运行

      pecl install xdebug
      

      而且你应该有使用 Xdebug 的 PHP 二进制文件。

      【讨论】:

      • @frumbert 我知道可能已经很晚了,但是您可以使用以下语法 ./pecl install xdebug 从同一文件夹启动脚本文件。我希望它可以帮助某人。
      【解决方案6】:

      后缀--with-pear安装pear和pecl
      请参阅下面的示例

      brew install php --with-pear
      brew reinstall php --with-pear
      

      【讨论】:

        【解决方案7】:

        从 MacOS Sierra 10.12.1 开始,这对我有用,用于升级 PHP、安装 PEAR 和 V8

        brew tap homebrew/dupes
        brew tap homebrew/versions
        brew tap homebrew/homebrew-php
        
        phpversion="$(php -v | tail -r | tail -n 1 | cut -d " " -f 2 | cut -c 1,3)"
        brew unlink php$phpversion
        
        brew install php71
        brew install autoconf
        
        curl -O  http://pear.php.net/go-pear.phar
        php -d detect_unicode=0 go-pear.phar
        
        echo -e "\nexport PATH=$HOME/pear/bin:$PATH \n"
        
        source ~/.bash_profile
        
        echo -e "\ninclude_path = '.:/Users/YOURUSERNAME/pear/share/pear/' \nextension=v8js.so \n" >> /usr/local/etc/php/7.1/php.ini
        
        git clone https://github.com/phpv8/v8js ~/tmp/v8js && cd $_
        ./configure CXXFLAGS="-Wno-c++11-narrowing"
        make
        make test
        make install
        
        sudo apachectl restart
        

        【讨论】:

          【解决方案8】:

          当使用 brew 且未链接时,使用:

          brew install php@5.6
          brew unlink php@5.6
          
          $(brew --prefix php@5.6)/bin/pecl
          $(brew --prefix php@5.6)/bin/pear
          

          【讨论】:

            【解决方案9】:

            所以对于大苏尔来说:

            brew install php
            
            brew services start php
            

            【讨论】:

              【解决方案10】:

              对于 macOS Mojave 10.14.4,当询问“安装库 ($prefix)”位置时,只需使用 /local 而不是 /usr。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2023-03-15
                • 2018-08-13
                • 1970-01-01
                • 1970-01-01
                • 2018-10-28
                • 2018-12-05
                • 1970-01-01
                • 2018-08-06
                相关资源
                最近更新 更多