所以看起来新的'系统完整性保护'/ usr(以及其他目录中)的lockdown使得pear和pecl成为非首发。有没有人找到一个解决方法而不是禁用它?
有一种更简单的方法 - 无需禁用SIP或下载自己的副本:
sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
对于macOS Mojave 10.14.4,当被问到“安装基础($ prefix)”位置时,只需使用/ local而不是/ usr。
您不应该将二进制文件安装到系统/usr
中,而是使用/usr/local
。
当通过pecl
安装时,pear
和Homebrew命令应该与PHP一起出现。
以下是使用最新的Homebrew安装PHP的示例:
brew install php
或具体版本:
brew install [email protected]
brew install [email protected]
要查找pecl
和pear
命令,请运行:
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
从以下链接: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并按回车键。
- 输入:
/usr/local/pear
- 键入4并按回车键。
- 输入:
/usr/local/bin
- 按返回
验证PEAR。
你应该能够输入:
pear version
最后,如果您使用PEAR的任何扩展或应用程序,您可能需要更新PHP的包含路径。
在莫哈维,我必须运行以下命令 - 谢谢你去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
添加后缀--with-pear
以安装pear和pecl
见下面的例子
brew install php --with-pear
brew reinstall php --with-pear
以下是Macworld文章的链接,该文章介绍了如何启用和禁用“系统完整性保护”。
从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
High Sierra设置:
有预装的PEAR PACKAGE
/usr/local/opt/php@<your_version>/bin
从那里你可以跑
pecl install xdebug
你应该使用Xdebug工作PHP二进制文件。
当使用brew并且没有链接时,请使用:
brew install [email protected]
brew unlink [email protected]
$(brew --prefix [email protected])/bin/pecl
$(brew --prefix [email protected])/bin/pear