【问题标题】:Pages timeout after enabling APC启用 APC 后页面超时
【发布时间】:2012-08-06 18:28:14
【问题描述】:

我已经在我们的 Windows 开发服务器上安装了 APC。在我启用 APC 并重新启动 apache 后,我们的页面无法加载。他们超时,我只是在浏览器上重置连接。 服务器上的其他脚本,例如 phpmyadmin 也不会加载。

这是我们的系统配置:

Windows 2003 Server
Apache 2.2.22
PHP Version 5.3.15
APC Version 3.1.11

查看apc.php 我看到命中率为 80%,未命中率为 20%。

APC 运行时设置

apc.cache_by_default    1
apc.canonicalize    1
apc.coredump_unmap    0
apc.enable_cli    0
apc.enabled    1
apc.file_md    50
apc.file_update_protection    2
apc.filters    ''
apc.gc_ttl    3600
apc.include_once_override    0
apc.lazy_classes    0
apc.lazy_functions    0
apc.max_file_size    1M
apc.num_files_hint    1000
apc.preload_path    ''
apc.report_autofilter    0
apc.rfc1867    0
apc.rfc1867_freq    0
apc.rfc1867_name    APC_UPLOAD_PROGRESS
apc.rfc1867_prefix    upload_
apc.rfc1867_ttl    3600
apc.serializer    default
apc.shm_segments    1
apc.shm_size    32M
apc.slam_defense    1
apc.stat    1
apc.stat_ctime    0
apc.ttl    0
apc.use_request_time    1
apc.user_entries_hint    4096
apc.user_ttl    0
apc.write_lock    1

我看到在指定临时文件夹上创建的文件名称为.apc.a00532,但它们有file size 0

我还检查了 php 错误日志,但没有看到任何内容。

非常感谢任何帮助,在此先感谢。

编辑 我正在使用 VC9 编译的 PHP,我的 apache 与从 apache Lounge 编译的 VC9 匹配。我也尝试过使用 APC 3.1.9,但它也不显示页面。我运行的任何 php 脚本都会超时,除了 apc.php 本身,它显示我正在缓存的东西。

【问题讨论】:

  • 您可能会在 serverfault 上看到更多操作。
  • 我不想创建跨站点重复,如果在这里没有得到一些想法可能会移动到那里。感谢您的建议。
  • 你不是在使用 Zend Server 吗?
  • @wes 没有来自 apache Lounge 的 Zend 服务器 apache,来自 php.net 的 php 都是 VC9 编译的

标签: php windows apache apc


【解决方案1】:

您使用的 APC 版本可能与您的 PHP 版本不匹配。
我应该做的第一件事是从命令行运行php -v 并检查错误。
请注意,APC 3.1.11 版本仍处于测试阶段;最新的稳定版本是 3.1.9。
你可以从here下载APC预编译的二进制版本。
要选择正确的 APC 版本(VC6/VC9 - 线程安全/非线程安全),您应该禁用 APC 并打开“phpinfo()”页面,然后查找选项“线程安全”和“配置命令”。
如果你从PHP site下载了你的PHP,5.3.15版本应该是VC9编译的。
此版本不应与“apache.org”二进制文件一起使用,因为您可以阅读here,因此您还应该使用 Apache VC9 版本,可从Apache Lounge 获得。

【讨论】:

  • 感谢您的信息。对于这个设置,我有来自你提到的来源的 php VC9 和 apache VC9。我的 Apache 来自 Apache Lounge。我也会编辑问题以提供这些信息。
  • 它作为 Apache 模块运行,我只是在打开 enable_cli 选项后尝试运行脚本。它运行良好,并按预期通过 cli 给了我输出。
  • 是的,我已经检查了添加到 open_basedir 的 tmp 文件夹,我还看到 apc 创建了 C:\Program Files\PHP\temp\apc.XXXXXX 文件,但它的文件大小为 0。我也让它写 win\temp 和相同的结果。
  • 浏览器上的任何脚本仍然没有响应。如果我将其设置为空,我会从 cli 收到 open_basedir 限制错误。仅供参考,通常我在open_basedir 下也有C:\windows\temp。我已经下载了 php 的源代码,我会尝试在我的机器上编译它们。
  • 尝试将open_basedir 设置为无并使用默认的php.ini 文件。页面仍然不加载现在apc.php 也不加载。至少这变得更加一致:D
猜你喜欢
  • 1970-01-01
  • 2015-03-03
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
相关资源
最近更新 更多