APC - 无法加载动态库

时间:2012-02-01 15:36:49

标签: php apc

以下是我在PHP.ini中的内容:

extension=php_apc.dll
...    
[APC]
apc.enabled = 1

我在Windows Server 2003上运行Apache 2.0.59,PHP版本5.2.3。

我已经安装了使用vc6编译的XDebug。因此,我得到了APC版本5.2 vc6。这是我下载的两个文件名(并将* .dll放在php / ext /)中。

php_apc-3.1.5-5.2-vc6-x86.zip php_apc-3.1.5-5.2-nts-vc6-x86.zip

我得到了他们here

我尝试重新启动服务器,在这两种情况下,我都收到以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library './ext/php_apc.dll' - The specified module could not be found.\r\n in Unknown on line 0

7 个答案:

答案 0 :(得分:4)

尝试使用extension_dirphp.ini的完整驱动器号和路径:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "C:\somedir\php\ext"

在进行更改后重新启动Apache。

(它可能是其他东西,但这是我在Windows系统上检查的第一件事 - 那些讨厌的文件路径。)

答案 1 :(得分:1)

  1. 首先,我去了here
  2. 然后,我下载了Collection of PECL modules for PHP 5.2.3
  3. 然后,我解压缩了php_apc.dll文件并将其复制到ext /文件夹
  4. 重启Apache
  5. 有效!

答案 2 :(得分:1)

完成其他答案:

使用DLL的非线程安全(NTS)版本而不是线程安全版,解决了我的问题。

也就是说,只有NTS版本与我的WAMP安装兼容。

答案 3 :(得分:0)

您可以查看:

  

注意:在Windows上,APC需要存在临时路径,并且可由Web服务器写入。它按顺序检查TMP,TEMP和USERPROFILE环境变量,如果没有设置,最后会尝试WINDOWS目录。

http://php.net/manual/en/apc.installation.php

答案 4 :(得分:0)

您必须确保DLL具有正确的体系结构级别。尝试从php_apc-3.1.10-5加载文件时遇到同样的问题。 4 -vc6-x86.zip。它没有用,而来自php_apc-3.1.10-5。 3 -vc6-x86.zip的DLL工作正常。我不知道如何找到正确的文件,而不是在PHP存储库中摆弄。 HTH。

答案 5 :(得分:0)

我的问题是我在apc之前列出了apcu。

extension=apc
extension=apcu

重新排序它们,以便首先使用apcu,解决了我的问题。

答案 6 :(得分:0)

就我而言,我正在使用 macOS Catalina ,并尝试为 PHP 5.6 安装扩展名 APCU

所以我运行了以下命令:

  1. brew install autoconf
  2. pecl channel-update pecl.php.net
  3. pecl install apcu-4.0.11

在此阶段,我的php5.6 ini得到了输入 extension =“ apcu.so” 但是我收到警告说apcu.so不在 / usr / local / lib / php / pecl / 20131226 / 目录。

安装程序将 apcu.so 放在 /usr/local/Cellar/php@5.6/5.6.40/pecl/20131226/apcu.so

所以我将apcu.so复制到了所需的目录

cp /usr/local/Cellar/php@5.6/5.6.40/pecl/20131226/apcu.so /usr/local/lib/php/pecl/20131226/

我完成了。