如何在Debian上安装作为PHP7扩展的APCu

27

你安装了编译好的扩展吗?https://serverpilot.io/community/articles/how-to-install-the-php-apcu-extension.html 或者 http://php.net/manual/en/book.apc.php - Gary
在severpilot.io中,我得到了“pecl7.0-sp未找到”的错误。在PHP.net上,它是为php5而存在的。 - ns dns
PECL扩展安装的方法在php5.x和php7.x中是相同的。除非源代码与php7.x冲突,否则没有太多变化。请尝试从源代码手动编译,并告诉我们是否有所帮助。否则,您必须联系维护者以检查当前版本是否支持php7.x https://pecl.php.net/package/APCu。Windows php7.x二进制版本的APCu已经可用。 - Gary
请查看此链接:http://php.net/manual/zh/install.pecl.intro.php - Gary
类似错误:https://dev59.com/cXI-5IYBdhLWcg3w483k - Gary
7个回答

32

首先,我假设您是使用DotDeb APT仓库安装PHP7的。如果不是,则应该按照以下方式安装。

一旦PHP7已经成功安装并运行,并且假定系统中没有其他版本的PHP安装,则可以通过以下方式安装apcu

sudo apt-get install php7.0-dev
pecl channel-update pecl.php.net
pecl install apcu

echo "extension=apcu.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

如果提示需要指定任何配置,请按Enter键。


2
David P的下面回答(可能很快就会被删除,因为它实际上是一条评论)建议在您的示例代码中各处将“acpu”更改为“apcu”。 - Paul Roub
我总是会得到 ...编译终止。 make: *** [apc.lo] 错误 1 错误:make' 失败 在执行pecl install apcu` 后。 - kwoxer
е®үиЈ…php7.0-devиҪҜ件еҢ…жүҚиғҪжҲҗеҠҹзј–иҜ‘гҖӮ - 3k-
最后一个回显行使用sudo时会出现权限被拒绝的错误。 - Levi

20

我知道这篇文章已经有点旧了,但我想分享一下对我有效的安装方法。因为我尝试了此问题中提供的三个答案,但都无法成功安装APCU。我的问题不在于安装APCU本身,pecl install apcu 命令可以成功安装。但是我按照每种方法添加 php.ini 中的扩展行,但两者都不适用于我。我使用 phpinfo() 在一个PHP文件中检查时,它总是没有显示APCU作为已安装的扩展。

在搜索结果中进行更多研究后,我发现了在WPBullet上轻松安装它的方法。我所做的就是使用以下命令安装包 php-apcuphp-apcu-bc

sudo apt-get install php7.0-apcu

这对我来说不需要手动在php.ini中编写即可正常工作。不要忘记重新启动apache2或您的服务器。


1
在执行了 apt-get update 命令之后,我收到了 无法找到包 php7.0-apcu 的错误提示。 - Andru
@Andru,你尝试过分别安装php-apcuphp-apcu-bc这两个包吗? - Ivanhercaz
1
或者对于php7.1,sudo apt-get install php7.1-apcu - Chad
1
显而易见,但以防万一,对于 php 7.3 最终变成 sudo apt-get install php7.3-apcu :) - nssmart

10

运行:

sudo apt-get install php7.0-dev
pecl channel-update pecl.php.net
pecl install apcu

在检查之前,请勿立即在php.ini上添加extension=apcu.so。应该会自动在/etc/php/7.0/cli/conf.d/20-apcu.ini上添加extension=apcu.so。您可以运行php -i | grep app来检查或者查看/etc/php/7.0/cli/conf.d/20-apcu.ini文件。如果加载两次,您将得到:

PHP Warning:  Module 'apcu' already loaded in Unknown on line 0

这条消息可能是为了老系统而保留的:

install ok: channel://pecl.php.net/apcu-5.1.5
configuration option "php_ini" is not set to php.ini location
You should add "extension=apcu.so" to php.ini

我无法对现有答案进行评论(积分少于50)。我遇到了PHP错误,然后找到了那个文件。


8

检查/etc/php/(版本类似于7.2)/cli/conf.d目录,查找20-apcu.ini文件。如果您在那里看不到它,则需要安装它。执行以下命令进行安装:

sudo apt-get install php7.2-apcu

如果php.ini文件中没有以下内容,请添加下面的行。
extension=apcu.so

注意:对于php7.2-apcu,请使用您自己的php版本。例如,php7.0-apcu

安装后,如果您正在使用nginx,则请重启您的php7.X-fpm服务。

sudo service php7.2-fpm restart

现在重新加载nginx

sudo service nginx reload

如果你正在使用Apache,则重新加载它:

sudo service apache2 reload

6

刚在Ubuntu 14.04.3 LTS上安装了APCu,PHP版本为7.0.3-2:

$ pecl install apcu
$  cat > /etc/php/mods-available/test.ini
; configuration for php apcu module
; priority=20
extension=apcu.so
$ ln -s /etc/php/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
$ service php7.0-fpm restart

phpinfo() output:

phpinfo-apcu


4

我使用的是Ubuntu 20.04和php-fpm 7.4。 要安装apcu:

apt install php-apcu

1
也适用于Debian 10和11。 - Alan Delval
感谢提供这些信息。由于Ubuntu是Debian的一个衍生版本,因此许多命令是相同的。 - Mawan

1

对于 PHP7.3,请使用以下命令

sudo apt-get install php7.3-apcu -y

sudo service php7.3-fpm restart

sudo service apache2 restart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接