目 录CONTENT

文章目录

超级缓存插件 WP Super Cache 静态HTML生成加速网站

华灯
2024-04-16 / 0 评论 / 0 点赞 / 21 阅读 / 7843 字

WordPress 超级缓存插件 WP Super Cache 生成静态HTML、这个插件从您的动态WordPress博客生成静态HTML文件,生成html文件后,您的web服务器将为该文件提供服务,而不是处理相对较重且较昂贵的WordPress PHP脚本。

WordPress、 WordPress静态缓存、 WP Super Cache、 超级缓存插件、 静态HTML

静态HTML文件将被提供给绝大多数用户:

没有登录的用户。
尚未在您的博客上发表评论的用户。
或者没有查看密码保护的帖子的用户。
99%的访问者将被提供静态HTML文件。一个缓存的文件可以服务上千次。其他访问者将被定制到他们的访问定制的缓存文件。如果他们已经登录,或者留下了评论,那么这些细节将被显示并缓存。

WordPress、 WordPress静态缓存、 WP Super Cache、 超级缓存插件、 静态HTML

该插件以3种方式提供缓存文件(按速度排列):

专家。最快的方法是使用Apache mod_rewrite(或者您的Web服务器支持的任何类似的模块)来为超级缓存的静态html文件提供服务。这完全绕过PHP,非常快。如果你的服务器遭到大量的流量攻击,那么这个请求就更容易处理,因为请求是“更轻”的。这确实需要Apache mod_rewrite模块(如果你有自定义永久链接,可能会安装它),修改.htaccess文件是有风险的,如果修改不正确,可能会把你的网站取消。
简单。超级缓存的静态文件可以由PHP提供,这是使用插件的推荐方式。如果存在的话,该插件将提供一个“超级缓存”文件,它的速度几乎和mod_rewrite方法一样快。配置更容易,因为.htaccess文件不需要改变。你仍然需要一个自定义的固定链接。您可以保持页面的一部分在此缓存模式下动态。
WP-Cache缓存。这主要用于缓存已知用户的页面,包含参数和提要的URL。已知的用户已经登录了用户,留下了评论的访问者或应该被显示的用户每个用户的数据。这是最灵活的缓存方法,速度稍慢。如果超级缓存被禁用,WP-Cache缓存还将缓存未知用户的访问。在这种模式下,您也可以在页面中使用动态部分。该模式始终处于启用状态,但可以禁用已知用户的缓存,带参数的URL或单独的提要。如果您只想使用WP-Cache缓存,请在wp-config.php中将常量“DISABLE_SUPERCACHE”设置为1。
如果你不习惯编辑PHP文件,那么使用简单模式。这很容易建立,非常快。

推荐设置
简单的缓存。
压缩页面。
不要为已知的用户缓存页面。
高速缓存重建。
CDN支持。
额外的主页检查。
垃圾收集是清理过期和陈旧的缓存文件的行为。到期时间没有正确的价值,但一个好的起点是1800秒。

考虑删除“拒绝的用户代理”文本框的内容,并允许搜索引擎为您缓存文件。

预先加载尽可能多的帖子,并启用“预加载模式”。旧的缓存文件的垃圾回收将被禁用。如果你不关心侧边栏小部件更新经常设置预加载时间间隔为2880分钟(2天),所以你的帖子不经常recach。发生预加载时,正在刷新的帖子的缓存文件将被删除并重新生成。之后,执行所有旧文件的垃圾回收以清除陈旧的缓存文件。
即使启用了预加载模式,缓存的文件在修改帖子或发表评论时仍然会被删除。

预加载
您可以通过预加载为您的网站的帖子,类别和标签生成缓存文件。预加载将访问您网站的每个页面,并随着网页的其他访问者一起生成缓存页面。由于此功能的顺序特性,如果帖子很多,可能需要一些时间才能预装一个完整的站点。
为了使预加载更加有效,禁用垃圾收集可能会很有用,以避免旧的缓存文件被删除。这是通过在设置中启用“Preload Mode”来完成的。但请注意,网页最终会过时,但通过提交评论或编辑帖子来更新会清除部分缓存。

垃圾收集
您的缓存目录会随着时间的推移而填满,这会占用服务器上的空间。如果空间有限或按容量计费,或者如果您担心网站的缓存页面过时,则必须进行垃圾收集。垃圾收集定期发生并删除缓存目录中的旧文件。在高级设置页面上,您可以指定:
1.缓存超时。多久缓存文件被认为是新鲜的。过了这段时间后,它们已经陈旧,可以删除。
2.调度程序。设置垃圾收集的频率。
3.通知电子邮件。你可以通知垃圾收集工作的进展。
垃圾收集没有正确或错误的设置。这取决于你自己的网站。
如果您的网站获得定期更新或评论,则将超时设置为1800秒,并将计时器设置为600秒。
如果你的站点大多是静态的,你可以通过输入0作为超时来禁用垃圾收集,或者使用一个非常大的超时值。

缓存目录,通常wp-content / cache /仅用于临时文件。永远不要把重要的文件或符号链接放在那个目录中的重要文件或目录中。如果插件有写入权限,它们将被删除。

CDN
内容分发网络(CDN)通常是位于世界各地的计算机网络,通过使用距离您较近的服务器,可以更快速地为您的网站内容提供服务。静态文件,如图像,Javascript和CSS文件可以通过这些网络来提供加快您的网站加载速度。您也可以通过使用您的域的子域来创建“穷人的CDN”来提供静态文件。

OSSDL CDN off-linker已经集成到WP Super Cache中以提供基本的CDN支持。它通过重写wp-content和wp-includes中的文件(不包括.php文件)的URL来工作,因此它们指向不同的主机名。许多CDN支持起源。这意味着CDN会在第一次请求时自动从您的服务器上下载文件,并在从您的服务器再次下载文件之前将其继续提供一段可配置的时间。

在插件设置页面的“CDN”选项卡上进行配置。这是一项高级技术,需要对您的网络服务器或CDN的工作原理有一个基本的了解。请确保在配置CDN后清除文件缓存。

REST API
现在有用于访问此插件设置的REST API端点。您需要以管理员用户的身份进行身份验证,才能查看设置页面以使用它。这还没有被记录下来,但是你可以在“rest”目录下找到所有处理这个代码的代码。

自定义缓存
现在可以使用add_cacheaction()函数挂接到缓存过程。

三个钩子可用:

‘wp_cache_get_cookies_values’ – 修改WP Cache使用的密钥。
‘add_cacheaction’ – 在阶段2中运行。允许插件添加WordPress钩子。
“cache_admin_page” – 在管理页面中运行。使用它来修改该页面,也许通过添加新的配置选项。
还有一个常规的WordPress过滤器。使用“do_createsupercache”过滤器
来自定义在缓存之前进行的检查。该过滤器接受一个参数。
WP-Cache的wp_cache_get_cookies_values()函数的输出。

请参阅plugins / searchengine.php作为我用于“我的无广告”插件的示例。

故障排除
如果在安装插件时无法正常工作,请检查以下几项内容:

wp-content可以通过web服务器写入吗?
有没有一个wp-content / wp-cache-config.php?如果没有,请将文件wp-super-cache / wp-cache-config-sample.php复制到wp-content / wp-cache-config.php中,并确保WPCACHEHOME指向正确的位置。
有没有一个wp-content / advanced-cache.php?如果没有,那么你必须将wp-super-cache / advanced-cache.php复制到wp-content /中。您必须编辑文件并更改路径,使其指向wp-super-cache文件夹。
如果页面没有被缓存,根据上面的建议删除wp-content / advanced-cache.php并重新创建它。
确保以下行在wp-config.php中,并在“require_once(ABSPATH.’wp-settings.php”);“line:

再次尝试设置 – > WP超级缓存页面并启用缓存。
查看wp-content / cache / supercache /。那里有目录和文件吗?
任何在你的php error_log?
如果您的浏览器一直要求您在安装超级缓存后保存文件,则必须禁用超级缓存压缩。进入设置 – > WP超级缓存页面,并在那里禁用。
当PHP的安全模式处于活动状态时,该插件不能很好地工作。这必须由您的管理员禁用。
如果页面是随机超级缓存的,有时甚至不是,那么您的博客可能会在URL上带有或不带有“www”前缀的情况下查看。如果您使用的是旧版WordPress安装,您应该选择一种方法并安装“ 强制实施”网络优先选择插件。最新版本重定向自己(你应该永远运行最新版本的WordPress!)
Dreamhost中的私人服务器用户应该编辑wp-content / wp-cache-config.php,并将缓存目录设置为“/ tmp /”,如果他们得到有关增加CPU使用率的错误。看到这个讨论更多。
文件锁定错误,如“未能获取密钥0x152b:权限被拒绝…”或“页面未被WP超高速缓存缓存”。无法获得互斥锁。“是您可能必须使用文件锁定的标志。编辑wp-content / wp-cache-config.php并取消注释“ use_flock = true”或将 sem_id设置为不同的值。作为最后的手段,您也可以从Admin屏幕禁用文件锁定。
如果使用粗略文件锁定,请确保Web服务器可以写入缓存/ wp_cache_mutex.lock。
缓存文件夹不能放在NFS或Samba或NAS共享上。它必须在本地磁盘上。除非缓存文件夹位于本地计算机上,否则文件锁定和删除过期文件将无法正常工作。
如果WordPress无法找到wp-cron.php,则旧缓存文件的垃圾回收将不起作用。如果您的主机名解析为127.0.0.1,则可能会阻止垃圾收集工作。检查你的access_logs的wp-cron.php条目。他们返回一个404(文件未找到)或200代码?如果是404,或者在任何地方都看不到wp-cron.php,那么WordPress可能会在错误的地方查找脚本。您应该与您的服务器管理员联系,以解决此问题,或在Unix服务器上编辑/ etc / hosts并删除以下行。您的主机名必须解析为网络/ Internet使用的其他服务器的外部IP地址。有关更多信息,请参阅http://yoast.com/wp-cron-issues/。像“127.0.0.1 localhost localhost.localdomain”这样的行是可以的。

如果通过超级缓存向访问者提供旧页面,则可能缺少Apache模块(如果不使用Apache,则可能会丢失相应的模块)。需要3个模块:mod_mime,mod_headers和mod_expires。最后两点对于确保浏览器加载站点上现有页面的新版本尤为重要。
错误消息,“WP超级缓存已安装,但破碎。wp-content / advanced-cache.php中wp-cache-phase1.php的路径必须是固定的!“出现在每页的末尾。在你最喜欢的编辑器中打开文件wp-content / advanced-cache.php。wp-cache-phase1.php的路径是否正确?这个文件通常在wp-content / plugins / wp-super-cache /中。如果不正确,缓存引擎将无法加载。
缓存不起作用。当我重新加载时,我的博客上的时间戳不断变化。检查.htaccess规则中的路径是否与supercache目录所在的位置相匹配。您可能必须对其进行硬编码。尝试禁用超级缓存模式。
如果生成超级缓存文件但未提供服务,请检查所有wp-content / cache / supercache文件夹(以及wp-content缓存和超级缓存文件夹)和wp-content / cache / .htaccess的权限。如果您的PHP以不同的用户身份运行到Apache并且权限严格,则Apache可能无法读取PHP生成的缓存文件。要解决您的问题,您必须将以下行添加到您的wp-config.php(将其添加到WP_CACHE定义的上方)。然后清除缓存

如果在插件中启用压缩后在浏览器中看到垃圾,则可能已在Web服务器中启用压缩。在Apache中,您必须禁用mod_deflate,否则在PHP中zlib可能会启用压缩。你可以用三种方法禁用它。如果你有root权限,编辑你的php.ini,并找到zlib.output_compression设置,并确保它是“关闭”或将此行添加到您的.htaccess:

当您访问您的网站时,“死亡白屏”或空白页几乎总是由PHP错误引起的,但也可能由APC引起。如果遇到问题,请禁用该PHP扩展,然后替换为eAccelerator或Xcache。
卸载后,如果您也删除了WordPress mod_rewrite规则,则您的固定链接可能会中断。重新生成这些规则,访问设置 – >永久链接页面并再次保存该表单。
如果你的博客拒绝加载,请确保你的wp-config.php是正确的。你是否错过了打开或关闭PHP标签?
你的首页是好的,但职位和网页给404?一旦你选择了一个自定义的永久链接结构,进入设置 – >永久链接并点击“保存”。您可能需要手动更新您的.htaccess文件。
如果某些字符在您的网站上显示不正确,您的服务器可能配置不正确。你需要告诉访问者使用了什么字符集。转到设置 – >阅读并复制’页码和提要的编码’值。用所有Supercache和WordPress重写规则编辑.htaccess文件,并在顶部添加它,用复制的值替换CHARSET。(例如“UTF-8”)

使用Cron View来帮助诊断垃圾收集和预加载问题。使用插件来确保作业已安排在什么时间。查找wp_cache_gc和wp_cache_full_preload_hook作业。
错误消息,“WP超级缓存已安装,但破碎。WPCACHEHOME常量必须在文件wp-config.php中设置,并指向WP超级缓存插件目录。“出现在每个页面的末尾。您可以删除wp-content / advanced-cache.php并重新加载插件设置页面或编辑wp-config.php并查找WPCACHEHOME并确保它指向wp-super-cache文件夹。这通常是wp-content / plugins / wp-super-cache /,但是您可能需要该文件的完整路径(因此让设置页面更容易修复)。如果不正确,缓存引擎将无法加载。
如果您的服务器由于插件使用的信号量而遇到麻烦,这是因为您的用户正在使用不建议使用的文件锁定(但少数用户需要这样做)。您可以通过定义常量WPSC_DISABLE_LOCKING或定义常量WPSC_REMOVE_SEMAPHORE来全局禁用文件锁定,以便在缓存每个页面后调用sem_remove(),但似乎会导致请求相同信号的其他进程出现问题。最好禁用它。

如何卸载WP超高速缓存
几乎所有你需要做的是停用插件页面上的插件。该插件应该清除它创建和修改的大部分文件,但是它还不能从.htaccess文件中删除mod_rewrite规则。查找该文件中由SuperCache BEGIN和END标记标记的部分。该插件不会删除这些,因为有些人也在该块中添加了WordPress规则。

手动卸载:

关闭插件设置页面的缓存并清除缓存。
停用插件页面上的插件。
从wp-config.php中删除WP_CACHE定义。看起来像define( ‘WP_CACHE’, true );
从.htaccess文件中删除超级缓存mod_rewrite规则。
删除文件wp-content / advanced-cache.php和wp-content / wp-cache-config.php
删除目录wp-content / cache /
从plugins目录中删除目录wp-super-cache。

如果一切都失败,您的网站被破坏
从wp-config.php中删除WP_CACHE定义。看起来像define( ‘WP_CACHE’, true );
删除插件写入根目录中的.htaccess文件的规则(参见上文)。
删除plugins文件夹中的wp-super-cache文件夹。
可以选择删除高级缓存.php,wp-cache-config.php和wp-content /中的缓存文件夹。

0

评论区