代码相关

mamp环境下禁止页面缓存

timhbw · 6月3日 · 2018年

MAMP Pro是一款适用于Mac操作系统的软件。MAMP PRO是专业级版本的经典本地服务器环境的os x软件。MAMP这几个首字母代表苹果的OSX系统上的Macintosh、Apache、MySQL和PHP,顾名思义,你应该知道MAMP的强大功能 啦!MAMP 内含 Apache 服务器、PHP 安装套件以及MySQL安装套件。只要轻松点选就能安装架站/讨论区/论坛必备的元件。透过Web界面稍作设定,在苹果电脑上架设自己专属的网站,就是这 么简单又开心的事情和windows下的XAMPP、WAMP,Linux下的LAMP一样。都是Apache+Mysql+PHP的集成环境。

 

本地使用MAMP调试的时候,发现代码修改后,没有立即生效,之前以为是浏览器缓存问题,但是在控制台已经勾选了Disable cache,问题还是存在,只能多刷新几次才能生效。之前都没时间解决这个问题,今天周末,一步一步排查,终于找到问题所在,特此分享,也算是个备忘录。

1、测试问题

写了一个简单的语句,方便调试缓存问题。改变x的值发现不是立即生效,和之前遇到的情况一样,说明问题是存在的,不是偶然。

<?php


$x=10;
if($x==10){
echo$x;
}else{
echo"测试";
}


//end

2、逐步排查

2.1浏览器缓存

打开浏览器开发者工具,勾选Disable cache,重新测试,发现还是无效,与浏览器缓存无关。

2.2 mamp中PHP默认的缓存组timhbw博客版权所有

以上都排查完了,想一想还有什么会导致这样的问题,应该是其他缓存组件,例如:eAccelerator、memcached、xcache、APC,看了下mamp的php.ini配置文件,找到了原因:

  1. opcache.revalidate_freq=60

这个参数的作用:一定时间内检查文件的修改时间,timhbw博客版权所有这里设置检查的时间周期,单位为秒,mamp默认为60秒,所以才会导致修改代码后不立即生效的。

具体修改位置:

选择对应的PHP版本后修改,我的是PHP5.6.30,把 opcache.revalidate_freq的参数值修改为1:

0 条回应