如何在我的 Mac OSX 上安装 PHP 扩展 'pcntl'

How to install PHP extension 'pcntl' on my Mac OSX

我的操作系统is:MacOSX10.11

我正在尝试在我的 Mac 上安装 Phabricator,当我执行

的命令时
phabricator cpopt$ ./bin/phd start

我收到一个错误:

"ERROR: The PHP extension 'pcntl' is not installed. You must install it to run daemons on this machine."

我在google上搜索了这个问题,我得到了很多解决方案,但它们都对我不起作用,我几乎绝望了。

我怎样才能做到这一点?

您是否安装了 brew(阅读此处以安装 http://brew.sh/)?

尝试:

brew install php

或者如果您需要使用 brew 安装 PHP 5.6,您可以这样做:

brew install php@5.6

然后将它包含在您的 PATH 中(如果它没有自动添加),可能需要 运行 CLI 中的命令,您可能需要更新您的路径,例如(如果你要 brew install php@7.1 就是这种情况,但我刚刚使用 brew install php 测试时情况并非如此 - 如果你使用 bash 而不是 zsh,请将 .zshrc 更改为 .bashrc.

echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.zshrc

如果这不起作用,我想知道 phabricator 是否调用了 php 的正确版本。

出于好奇,您从中得到的输出是什么?这就是 phabricator 用来确定您的 php 版本的内容。

/usr/bin/env php -v

此外...您的 php.ini 是否已更新为具有 pcntl 扩展名? 运行 这可以查看您的模块并查找 pcntl:

php -i | grep pcntl

仔细检查 php.ini,php-cli 是 运行ning:

php -i | grep php.ini

我必须这样做才能安装 platform.sh 命令行工具。这是 Google 中的热门歌曲,因此我添加了此信息。我遵循的过程如下。

在终端中:

将自己添加到 'wheel' 用户组。

sudo dscl . append /Groups/wheel GroupMembership <username>

授予组对 /usr/local/bin

的写入权限
sudo chmod -R g+w /usr/local/bin

Link 用于 brew 的 libpng

brew link libpng

为 php 安装 pcntl(在我的例子中是 5.6)

brew install homebrew/php/php56-pcntl

以防万一其他人使用 MAMP,我最近将其更新到最新版本。然后我得到了错误

"ERROR: The PHP extension 'pcntl' is not installed. You must install it to run daemons on this machine."

更新后我还没有重新启动我的终端。重新加载会话后一切正常。