在OS X上安装pecl和pear 10.11 El Capitan,macOS 10.12 Saw,macOS 10.13 High Sierra(<10.13.3)

问题描述 投票:48回答:10

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

php macos pear pecl
10个回答
65
投票

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

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

0
投票

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


57
投票

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


当通过pecl安装时,pearHomebrew命令应该与PHP一起出现。

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

brew install php

或具体版本:

brew install [email protected]
brew install [email protected]

要查找peclpear命令,请运行:

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

要么:

find -L "$(brew --prefix [email protected])" -name pecl -o -name pear

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

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

brew unlink [email protected] && brew link [email protected] --dry-run && brew link --overwrite --force [email protected]

Otherwise,手动链接:

ln -vs "$(find -L "$(brew --prefix [email protected])/bin" -name pecl)" /usr/local/bin
ln -vs "$(find -L "$(brew --prefix [email protected])/bin" -name pear)" /usr/local/bin

或者直接下载Pear it作为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

35
投票

从以下链接: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

配置并安装PEAR

您现在应该提示配置PEAR。

  1. 输入1并按回车键。
  2. 输入: /usr/local/pear
  3. 键入4并按回车键。
  4. 输入: /usr/local/bin
  5. 按返回

验证PEAR。

你应该能够输入:

pear version

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


4
投票

在莫哈维,我必须运行以下命令 - 谢谢你去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

2
投票

添加后缀--with-pear以安装pear和pecl 见下面的例子

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

0
投票

以下是Macworld文章的链接,该文章介绍了如何启用和禁用“系统完整性保护”。

http://www.macworld.com/article/2986118/security/how-to-modify-system-integrity-protection-in-el-capitan.html


0
投票

从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

0
投票

High Sierra设置:

  • 安装Brew
  • 使用Brew安装PHP

有预装的PEAR PACKAGE

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

从那里你可以跑

pecl install xdebug

你应该使用Xdebug工作PHP二进制文件。


0
投票

当使用brew并且没有链接时,请使用:

brew install [email protected]
brew unlink [email protected]

$(brew --prefix [email protected])/bin/pecl
$(brew --prefix [email protected])/bin/pear
© www.soinside.com 2019 - 2024. All rights reserved.