Docker容器中的Apache,PHP,WordPress缓存问题

Gez*_*zim 6 php apache wordpress caching docker

我在OS X上使用Docker的Virtualbox驱动程序.使用官方的WordPress泊坞窗图像,我从本地计算机设置一个卷以映射到容器

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

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

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

更新2:这是.htaccess文件.这是docker virtualbox信息

Gez*_*zim 16

事实证明这是由PHP中的opcache引起的.在wordpress docker镜像中启用了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
Run Code Online (Sandbox Code Playgroud)

因此,我为wordpress创建了一个禁用缓存的新docker镜像.它基本上是这样的:

FROM wordpress:latest
RUN rm -rf /usr/local/etc/php/conf.d/opcache-recommended.ini
Run Code Online (Sandbox Code Playgroud)

  • 你也可以将`php_flag opcache.enable Off`添加到你的WordPress .htaccess中,它会禁用操作码缓存. (4认同)