【问题标题】:How do I Disable the Code Cache for PHP 5 (FPM) with Nginx?如何使用 Nginx 禁用 PHP 5 (FPM) 的代码缓存?
【发布时间】:2017-02-13 15:37:25
【问题描述】:

当我将更改保存到 PHP 文件然后重新加载时,无论我刷新多少次,它都会继续执行旧版本的脚本一分钟左右。 1 分钟(左右)后,它会执行当前版本。

如何禁用此行为以便立即发生更改?

设置是带有 Nginx 的 PHP-FPM。

【问题讨论】:

  • nginx 默认不缓存。 linux 默认没有文件缓存。你设置好你的服务器了吗?
  • 是的,我设置了服务器。我相信新版本的 PHP 已经内置了操作码缓存。
  • 在你的ini中注释掉opcache扩展(opcache.so)
  • /etc/php5/fpm/php.ini 中找不到opcache.so 的实例
  • 尝试 opcache.enable=Off - 但据我所知 opcache 在默认情况下也未启用,并且必须在执行 ./configure 时显式启用

标签: caching nginx php


【解决方案1】:

我的解决方案是 Zend OPCache 配置而不是 APC。

我在我的 Windows 8.1 机器上安装了 WNMP 的 vanilla 版本(PHP 5.5.11),并在我的php.ini 文件的[opcache] 部分发现 Zend OPCache 已启用并且每 60 秒仅检查一次文件更改(@ 987654323@)。查找该配置指令并将其设置为 0 以强制 OPCache 检查每个请求的 php 文件。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我的与 APC 扩展缓存有关。 您可以使用 PHP 函数 apc_clear_cache。

    【讨论】:

      【解决方案3】:

      在我的情况下(本地主机开发服务器,Nginx 1.10.0,PHP 7.0.13,没有 OPCache,没有 APC),将 realpath_cache_ttl 设置为 0,然后重新启动PHP-FPM 服务做了一个伎俩。但在生产服务器上更改此值时必须小心。

      【讨论】:

        【解决方案4】:

        使用 APC?检查 php.ini 中的 APC 部分

        确保 apc.stat=1

        http://www.php.net/manual/en/apc.configuration.php#ini.apc.stat

        【讨论】:

          猜你喜欢
          • 2013-09-14
          • 2015-08-23
          • 1970-01-01
          • 2016-02-24
          • 1970-01-01
          • 1970-01-01
          • 2019-06-05
          • 1970-01-01
          • 2019-01-28
          相关资源
          最近更新 更多