我有一个网站,基本上只显示没有任何表格和 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 bufferDocs .在脚本的末尾,您获得了输出缓冲区并将内容放入缓存文件中,然后将其输出。
此解决方案的好处是,如果静态文件存在且无需调用 PHP 进程,apache 将提供静态文件。如果您在 PHP 本身中完成所有这些操作,您将无法获得这种好处。
我什至会更进一步,运行一个 cron-job 来删除旧的缓存文件,而不是在 .htaccess
中进行时间检查。完成后,您可以使重写变得不那么复杂,以更喜欢 .php.cached
文件而不是 .php
文件。
关于php - 基于超简单静态文件(html)的php站点缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8758097/