php - 基于超简单静态文件(html)的php站点缓存

标签 php html caching shared-hosting

我有一个网站,基本上只显示没有任何表格和 post-get 的东西。 本网站基于 PHP 并托管在共享主机上。它很少改变。 我想为这个网站启用缓存。 它是共享主机,所以我需要一个解决方案:

  • 不使用 Memcached
  • 不需要将我的网站移动到 VPS
  • 不要使用 APC 或其他东西

所以基本上我想要完成的是将每个子站点缓存到 HTML 并告诉 PHP 获取当前子站点的 HTML 缓存版本 5 分钟并将其显示给用户。并在 5 分钟后刷新缓存。

我一直在互联网上寻找一些支持这种变态缓存的教程和框架。

但我需要的只是一个非常好用的库。

我想象它以这种方式工作:

<?

if (current_site_cache_is_valid())
{
   display_cached_version();
   die;
}

..mywebsite rendering code

?>

听起来很简单,但我希望之前有一些优秀的开发人员开发过此类库。那么您知道这样的即用型解决方案,实现起来并不费时吗?

最佳答案

这是我通常这样做的方式,但是我不知道您的 URL 设计,也不知道您的目录/文件布局。

我用 .htaccess 和一个 mod_rewrite­Docs 来做到这一点.

网络服务器检查缓存的 HTML 文件是否存在,如果存在,则传送。您还可以检查它的年龄。

如果它太旧或不存在,您的 PHP 脚本将启动。在脚本的开头你 start the output buffer­Docs .在脚本的末尾,您获得了输出缓冲区并将内容放入缓存文件中,然后将其输出。

此解决方案的好处是,如果静态文件存在且无需调用 PHP 进程,apache 将提供静态文件。如果您在 PHP 本身中完成所有这些操作,您将无法获得这种好处。

我什至会更进一步,运行一个 cron-job 来删除旧的缓存文件,而不是在 .htaccess 中进行时间检查。完成后,您可以使重写变得不那么复杂,以更喜欢 .php.cached 文件而不是 .php 文件。

关于php - 基于超简单静态文件(html)的php站点缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8758097/

相关文章:

javascript - WooCommerce 结帐字段编辑器 (minDate) 不起作用?

php - PHP 中的 IMAP 传入邮件服务器设置

html - Youtube参数不适用于thickbox

java - Spring 3.1.x 版本中是否可以定义更多的 KeyGenerator 类用于缓存?

php - 在 PHP 中测试 UTF-8 字符串是一种可靠的方法吗?

php - 将数据传递给 View - undefined variable

javascript - 页面加载时显示文本区域的所有行

javascript - 使用 Jquery 调用下一个 td

http - URI 不透明和缓存公理

c++ - LRU 缓存 C++ 实现