如何在Windows上安装APCu

40

我该如何在Windows中安装APCu?

我找到了这个,但我需要一个Windows的解决方案。

我使用PHP 5.5.6(我有XAMPP包)。


你好,user3481997!Robert在下面的回答是正确的。唯一不同的是你正在使用XAMPP。在我的情况下,复制“正确”的dll文件的文件夹是“C:\xampp\php\ext”。你的XAMPP目录可能不同。检查你的PHP错误日志以确保安装正确。 - Alvin Bunk
4个回答

94

这篇简明扼要的教程将帮助您安装APCu

在Windows上安装APCu

前提条件

  • 我假设您了解什么是APC - PHP替代缓存
  • 您想安装APCu,因为APC不再与PHP 5.5.x兼容
  • 您想为wamp、xampp等主要用于PHP的Windows Web开发平台安装APCu

说明

注意:对于您的wamp安装文件夹和PHP / Apache版本,所有目录位置可能都不同。

  1. 进入http://pecl.php.net/package/APCu,看看可用发布版的表格
  2. 选择适合您的版本(最新支持您的php版本的稳定版本)
  3. 从DLL列表中选择软件包,具体取决于您使用的Windows版本:
    • PHP版本(在您的情况下为5.5)
    • x64(64位)或x86(32位Windows)
    • Thread Safe(用于Apache兼容性)
  4. 解压归档文件,在C:\wamp\bin\php\php5.5.6\ext目录中复制php_apcu.dll
  5. 进入C:\wamp\bin\apache\apache2.4.9\bin,打开php.ini并添加以下行(我只是将它们添加到文件末尾):

    [apcu]
    extension=php_apcu.dll
    apc.enabled=1
    apc.shm_size=32M
    apc.ttl=7200
    apc.enable_cli=1
    apc.serializer=php
    

    这些是 php_apcu 压缩包 INSTALL 文件中推荐的配置,除了 DLL 文件的位置。

  6. 重启 WAMP。

  7. 前往 http://localhost/phpinfo.php 并检查是否出现了 apcu 配置表并启用了 apcu。
  8. 如果你想在 PHP CLI 中使用 apcu,则只需在 C:\wamp\bin\php\php5.5.6\bin\php.ini 中添加你在 apache 的 php.ini 文件的第五步中添加的配置行即可。

完结撒花!


如果我在IIS中托管,我需要线程安全还是非线程安全版本?有没有选择NTS而不是TS的时候? - Jacob Stamm

14

对于那些想要具备后向APC兼容性的人(1:1替换而不改变代码库,例如apc_cache_info > apcu_cache_info

  1. 发布页面下载php_apcu.dll(选择合适的PHP版本、架构和线程安全模式)

  2. PECL下载php_apcu_bc.dll

  3. 将两个文件保存在PHP安装文件夹下的ext目录中

  4. php.ini中加载扩展:

    extension=php_apcu.dll
    extension=php_apcu_bc.dll
    
  5. php.ini中配置APCu

  6. [APCu]
    apc.enabled=1
    apc.shm_size=32M
    apc.ttl=7200
    apc.enable_cli=1
    apc.serializer=php
    
    INFO: 要让带有APCu-BC 1.0.3的APC扩展正常工作,它必须被命名为php_apcu.dll。当我将其命名为php_apcu_bc-1.0.3-7.1-ts-vc14-x86.dll时,XAMPP启动失败了(提示缺少php_apc.dll)。
    附加说明:从以上来源下载vc15的压缩文件包含一个名为php_apc.dll的文件(在文件:“php_apcu_bc-1.0.4-7.2-ts-vc15-x86.zip”中,日期:2018年6月13日),只需将其重命名为php_apcu_bc.dll即可。

我按照您的指示进行了操作。当我下载php_apcu_bc.dll时,它仍然是以php_apcu.dll的名字出现的(就像您在PECL中提到的第2点),因此我将其重命名为php_apcu.dll,但是问题仍未解决。错误信息: PHP警告:PHP启动:无法加载动态库'php_apcu.dll' PHP警告:PHP启动:无法加载动态库'php_apcu_bc.dll' - Jess
很抱歉@JessicaPereira,但那是3年前的事了,我不再使用Windows进行开发。不幸的是,我不能为您提供更多帮助,只能给出一个提示,您应该检查是否下载了正确版本的APCu(PHP版本、架构、线程安全等)。 - Wirone
非常感谢。我完全按照您的建议操作,成功了:1-下载了7.3版本的php_apcu.dll;2-下载了7.3版本的php_apc.dll(即apcu_bc);3-将php_apc.dll|pdb重命名为php_apcu_bc.dll|pdb;最后在php.ini中添加extension = php_apcu.dll和extension = php_apcu_bc.dll,并重新启动httpd。使用phph -m测试,apc和apcu模块都运行正常。你是最棒的! - Striker

1
使用线程安全或非线程安全版本的DLL是有关紧要性的。对于我来说,在Windows 10 x64和PHP 7.4中,只有NTS适用于使用PHP内置服务器。这很令人困惑,因为当运行php -i时,PHP给出的错误消息是“无法加载动态库'php_apcu.dll'(尝试:ext\php_apcu.dll)”,就好像文件不存在一样。

运行 phpinfo() 命令可以获取你的 PHP 版本类型(NTS 或 TS)。它将显示为“Thread Safety: Enabled (TS)”或者“Thread Safety: Disabled (NTS)”。 - Erdal G.

-2
请参考官方文档:
https://secure.php.net/manual/en/opcache.installation.php 在我的情况下,我正在使用 XAMPP 上的 PHP 5.6,而我所需要做的就是更新我的 php.ini 文件,使用(推荐的设置):
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

2
opcache 不是 APCu。opcache 缓存 opcode,即由您的 PHP 脚本生成的中间代码。任何 PHP 脚本都可以从中受益(如果其代码不总是更改)。APCu 是一种数据缓存,允许 PHP 应用程序在内存中缓存数据。只有显式使用它的 PHP 脚本才能从中受益。 - Christopher K.

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