【问题标题】:apache2 keeps serving old versions of php filesapache2 继续提供旧版本的 php 文件
【发布时间】:2013-11-28 18:02:55
【问题描述】:

如标题所示,这个问题仍然存在,我在 apache2 中配置了一个 virtualHost(在 OVH 专用服务器上的 Ubuntu 12.04 上),我在我的 VirtualHost 的基本目录中放置了一个简单的 index.php 包含这个简单代码:

<?php
echo "Hello world! ";
?>

但是当我通过添加或删除代码来更新我的文件时,我通过访问 url http://test.xxxxx.ma:8082 来检查它,更新没有应用,我已经清除了我的浏览器缓存,使用了一个新的浏览器,我检查了是否mod_cache 已启用,但未启用,我想我正在使用正确的目录,新版本的文件 index.php 仅在 apache2 重新启动后提供,我的 VirtualHost 配置如下:

<VirtualHost *:8082>
DocumentRoot "/var/www/vhosts/xxxxx.ovh.net/test"
ServerName test.xxxxx.ma
<Directory "/var/www/vhosts/xxxxx.ovh.net/test">
<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +Indexes
allow from all
</Directory>
</VirtualHost>

【问题讨论】:

  • 这很可能是因为缓存。禁用任何缓存,它会立即刷新!缓存示例是 APC、memcache 或 memcached。您可以使用 phpinfo() 来查看是否启用了任何缓存。
  • 这绝对是一个缓存“问题”,因为它按预期工作,您只需为生产环境配置它。检查您是否启用了任何缓存(除了 mod_cache),因为肯定是这样。
  • 非常感谢,我已经按照“Richard Rodriguez”先生的建议使用了用户 phpinfo(),我发现 memcache 已经在服务器以及 apc 上安装和配置了有 apc.stat=0,我已经评论了 memcache 部分并更改了 apc.stat=1,非常感谢大家

标签: php apache caching ubuntu


【解决方案1】:

尝试添加

# Disable Caching for Scripts and Other Dynamic Files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
    Header unset Cache-Control
</FilesMatch>

在 .htaccess 文件中

【讨论】:

  • 如何检查是否首先设置了缓存标头?在编程(和系统管理)中,每次更改都应该有一些真正的原因。而“为什么不”总是一个非常糟糕的理由。
猜你喜欢
  • 2014-06-10
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2019-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多