我在一个管理其网站代码的小型学校部门工作。大多数代码都是用PHP编写的,并连接到一些单独的数据库服务器来生成HTML页面。由于数据库不经常更新,我想知道有没有办法让php创建HTML页面并保存页面服务器端?基本上,仍然有php生成页面,但只有当数据库发生更改时调用脚本,而不是针对每个请求调用脚本。这样,php生成的HTML页面就会保存在服务器上,并且可以在必须重新生成之前提供给许多客户端。
我知道请求通常是这样的:
请求>网络服务器> php调用>连接到数据库服务器> php生成带有db info>的HTML html返回客户端
我正在寻找更像这样的东西:
db updated>网络服务器生成html>为请求缓存的html页面
每当有请求时,就会这样:
请求>存储在本地的缓存html页面返回给客户端
对此主题的任何建议将不胜感激。看起来这个模型可以节省大量处理器时间,并节省大量流量。
答案 0 :(得分:0)
从网络服务器中排除缓存等解决方案,有两种主要方法可以解决这个问题,主要取决于您要缓存的原因。
PHP脚本在服务器上造成了很大的负担,而你却无法解决这个问题:没有替换或从硬件升级是一种选择,也没有优化你的PHP代码。这是您可以生成静态(HTML)内容并将其提供给用户的唯一方案。我真的怀疑它是这样的,因为你失去了认证等。
(外部)数据库服务器负载过重。考虑在PHP脚本中缓存结果,并使用相对较长的条目到期时间,因为数据几乎没有变化。
假设第二个选项的原因是询问的原因,请考虑查看PHP的几个缓存模块,如Fast Cache。但同样,这取决于调查缓存的原因。通常,如果生成部分需要很长时间才能等待,那么基于数据库内容生成静态内容只是一种可行的解决方案。