【问题标题】:Apache, PHP, WordPress caching issue in Docker containerDocker 容器中的 Apache、PHP、WordPress 缓存问题
【发布时间】:2016-05-18 20:55:13
【问题描述】:

我在 OS X 上使用 docker 的 Virtualbox 驱动程序。使用官方的WordPress docker 镜像,我从本地机器设置了一个卷以映射到容器

/Users/gezimhome/projects/zr/src:/var/www/html/wp-content/plugins/zr

当我更新主机中的文件时,它们在容器中显示已更新,但更改不会反映在网站上,直到几分钟后。我怀疑它可能是 Apache 缓存的东西,因为我没有安装任何 WordPress 缓存插件。

更新:我没有尝试过其他类型的文件。当我在浏览器中加载网站(甚至使用curl)时,PHP 文件没有更新。

更新 2:这是.htaccess 文件。 这是docker virtualbox info

【问题讨论】:

  • 具体是什么文件
  • 感谢您的提问。 PHP 文件。
  • 您的端口映射有问题吗?你检查过你的 .htaccess 文件有没有奇怪的标题?
  • 还有问题的 docker 容器上的配置是什么?您是否正确分配了资源?足够的 RAM / CPU?
  • 更新了更多信息,@MatthewRath。

标签: php wordpress apache caching docker


【解决方案1】:

原来这是由 PHP 中的opcache 引起的。在wordpress docker image中启用了opcache,如下:

RUN { \
        echo 'opcache.memory_consumption=128'; \
        echo 'opcache.interned_strings_buffer=8'; \
        echo 'opcache.max_accelerated_files=4000'; \
        echo 'opcache.revalidate_freq=60'; \
        echo 'opcache.fast_shutdown=1'; \
        echo 'opcache.enable_cli=1'; \
    } > /usr/local/etc/php/conf.d/opcache-recommended.ini

所以,我创建了一个新的docker image for wordpress that disables 缓存。本质上是这样的:

FROM wordpress:latest
RUN rm -rf /usr/local/etc/php/conf.d/opcache-recommended.ini

【讨论】:

  • 不错的发现。您也可以简单地在该文件上映射一个空白文件,例如: -v ./blankopcache/opcache-recommended.ini:/usr/local/etc/php/conf.d/opcache-recommended.ini
  • 谢谢!开发时缓存不是很好,官方镜像在网上使用的堆栈也没什么。
  • 哇,太棒了。这让我发疯了。
  • 您也可以将php_flag opcache.enable Off 添加到您的 WordPress .htaccess 中,这会禁用操作码缓存。
猜你喜欢
  • 1970-01-01
  • 2021-05-09
  • 2016-07-04
  • 2011-11-24
  • 1970-01-01
  • 2017-03-24
  • 2016-12-08
  • 2015-09-06
  • 1970-01-01
相关资源
最近更新 更多