所以它看起来像新的'系统完整性保护'锁定使梨和pecl成为非 起动机。 有没有人找到一个解决方法而不是禁用它？ p> div>
So it looks like the new 'System Integrity Protection' lockdown of /usr (among other directories) makes pear and pecl a non-starter. Has anyone found a workaround short of disabling it?
There's a much easier way — no need to disable SIP or download your own copy:
sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin
Here's a link to a Macworld article that describes how to enable and disable 'System Integrity Protection.'
From this link: http://jason.pureconcepts.net/2012/10/install-pear-pecl-mac-os-x/ With this instructions, you don't need to disable 'System Integrity Protection'
The following instructions install PEAR and PECL on Mac OS X under /usr/local/. PECL is bundled with PEAR. So this is as simple as installing PEAR on Mac OS X.
PEAR is PHP’s Package Repository and makes it easy to download and install PHP tools like PHPUnit and XDebug. I specifically recommend these two for every PHP developer.
curl -O https://pear.php.net/go-pear.phar sudo php -d detect_unicode=0 go-pear.phar
Configure and Install PEAR
You should now be at a prompt to configure PEAR.
- Type 1 and press return.
Type 4 and press return.
You should be able to type:
Eventually, if you use any extensions or applications from PEAR, you may need to update PHP’s include path.
You shouldn't install binaries into system
pear commands should come along with PHP when installing via Homebrew.
Here is the example installing PHP with the latest Homebrew:
brew install php
or the specific version:
brew install firstname.lastname@example.org brew install email@example.com
To find your
pear commands, run:
find -L "$(brew --prefix php)" -name pecl -o -name pear
find -L "$(brew --prefix firstname.lastname@example.org)" -name pecl -o -name pear
If you don't have it, consider uninstalling previous PHP version or run
You can also try to relink it by:
brew unlink email@example.com && brew link firstname.lastname@example.org --dry-run && brew link --overwrite --force email@example.com
Otherwise, link it manually:
ln -vs "$(find -L "$(brew --prefix firstname.lastname@example.org)/bin" -name pecl)" /usr/local/bin ln -vs "$(find -L "$(brew --prefix email@example.com)/bin" -name pear)" /usr/local/bin
Alternatively download Pear it directly as a Phar package:
curl -o /usr/local/bin/pear http://pear.php.net/go-pear.phar chmod +x /usr/local/bin/pear
or with this following one-liner (will work on Linux, but not on Unix):
curl -sL http://pear.php.net/go-pear.phar | sudo install -v -m755 /dev/stdin /usr/local/bin/pear
This worked for me as of MacOS Sierra 10.12.1 for upgrading PHP, installing PEAR and 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 " export PATH=$HOME/pear/bin:$PATH " source ~/.bash_profile echo -e " include_path = '.:/Users/YOURUSERNAME/pear/share/pear/' extension=v8js.so " >> /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 setup:
There is preinstalled PEAR PACKAGE in
from there you can run
pecl install xdebug
and you should have working PHP binary with Xdebug.
--with-pear to install pear and pecl
See example below
brew install php --with-pear brew reinstall php --with-pear
When brew is used and not linked, use:
brew install firstname.lastname@example.org brew unlink email@example.com $(brew --prefix firstname.lastname@example.org)/bin/pecl $(brew --prefix email@example.com)/bin/pear
For macOS Mojave 10.14.4 just use /local instead of /usr when asked for "Installation base ($prefix)" location.