首页 / 源码 / WordPress超级缓存插件WP Super Cache 生成静态 html 文件

WordPress超级缓存插件WP Super Cache 生成静态 html 文件

WP Super Cache

描述

这个插件从你的动态博客中生成静态html文件。在一个html文件生成后,你的网络服务器将服务于该文件,而不是处理相对繁重和昂贵的WordPress PHP脚本。

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

  • 未登录的用户。
  • 没有在您的博客上发表评论的用户。
  • 或者没有查看密码保护帖子的用户。

99%的访问者会得到静态的html文件。一个缓存文件可以被提供上千次。其他访问者将获得为他们的访问定制的缓存文件。如果他们已经登录,或者留下了评论,这些详细信息将会为他们显示并缓存。

WP Super Cache

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

  1. 专家。最快的方法是使用Apache mod_rewrite(或者您的web服务器支持的任何类似模块)来提供“超级缓存”的静态html文件。这完全绕过了PHP,速度极快。如果你的服务器受到大量流量的冲击,它更有可能应付,因为请求“更轻”。这确实需要Apache mod_rewrite模块(如果您有自定义的永久链接,可能会安装这个模块)和您的。htaccess文件,这是有风险的,如果修改不当,可能会关闭您的网站。
  2. 简单。PHP可以提供超级缓存的静态文件,这是推荐的插件使用方式。这个插件将提供一个“超级缓存”文件,如果它存在的话,并且它几乎和mod_rewrite方法一样快。更容易配置为。htaccess文件不需要更改。你仍然需要一个定制的永久链接。在这种缓存模式下,您可以保持部分页面动态。
  3. WP-Cache缓存。这主要用于缓存已知用户的页面、带参数的URL和提要。已知用户是已登录的用户、留下评论的访问者或应该显示自定义每用户数据的人。这是最灵活的缓存方法,但速度稍慢。如果超级缓存被禁用,WP-Cache缓存也会缓存未知用户的访问。在这种模式下,您也可以在页面中添加动态部件。此模式始终处于启用状态,但是您可以对已知用户、带参数的URL或单独的提要禁用缓存。如果您只想使用WP-Cache缓存,请在wp-config.php中将常量“DISABLE_SUPERCACHE”设置为1。

如果你不习惯编辑PHP文件,那么使用简单模式。它很容易设置,非常快。

推荐设置

  1. 简单缓存。
  2. 压缩页面。
  3. 不要为已知用户缓存页面。
  4. 缓存重建。
  5. CDN支持。
  6. 额外的主页检查。

垃圾收集是清理过期的缓存文件的行为。到期时间没有正确的值,但是一个好的起点是1800秒。

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

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

发展

证明文件

如果你需要更多的信息,你可以看看维基或者开发者文档.

预加载

你可以通过预加载为你的站点的文章、类别和标签生成缓存文件。预加载将访问你的站点的每一页,同时生成一个缓存页面,就像其他访问者访问站点一样。由于此功能的顺序性质,如果有许多帖子,预加载一个完整的站点可能需要一些时间。
为了使预加载更有效,禁用垃圾收集会很有用,这样旧的缓存文件就不会被删除。这是通过在设置中启用“预加载模式”来实现的。但是要注意,页面最终会过时,但是通过提交评论或编辑帖子进行的更新会清除部分缓存。

碎片帐集

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

缓存目录,通常是wp-content/cache/只用于临时文件。不要将重要文件或指向重要文件或目录的符号链接放在该目录中。如果插件对它们有写权限,它们将被删除。

加拿大

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

OSSDL CDN断开链接器已经集成到WP超级缓存中,提供基本的CDN支持。它的工作原理是重写文件的URL(不包括。php文件),所以它们指向不同的主机名。许多cdn支持原点拉力。这意味着CDN将在第一次请求时自动从您的服务器下载文件,并在从您的服务器再次下载之前,在可配置的时间长度内继续提供文件。

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

REST API

现在有了REST API端点来访问这个插件的设置。您需要被认证为管理员用户,有权查看设置页面来使用它。这还没有被记录下来,但是你可以在“rest”目录中找到处理这个问题的所有代码。

自定义缓存

现在可以使用add_cacheaction()函数挂钩到缓存过程。

有三种挂钩可供选择:

  1. ‘wp _ Cache _ get _ cookies _ values’–修改WP缓存使用的密钥。
  2. ‘ add _ cache action ‘–在阶段2中运行。允许插件添加WordPress挂钩。
  3. ‘ cache _ admin _ page ‘–在管理页面中运行。用它来修改页面,也许是通过添加新的配置选项。

也有一个常规的WordPress过滤器。使用“do_createsupercache”过滤器
自定义缓存前的检查。过滤器接受一个参数。
WP-Cache的wp_cache_get_cookies_values()函数的输出。

WP超级缓存有自己的插件系统。这段代码是在WP超级缓存加载时加载的,可以用来改变缓存的方式。这是在大多数WordPress加载之前,所以一些功能将不可用。插件可以位于PHP可以加载它们的任何地方。添加您自己的插件:

  • 把你的插件放在WP-content/plugins/WP-super-cache-plugins目录中,或者
  • 通过调用wpsc_add_plugin( $name),其中$name是插件的完整文件名和路径。您只需要调用该函数一次来添加它。使用wpsc_delete_plugin( $name)将其从加载的插件列表中删除。

WP超级缓存用来识别“已知用户”的cookies现在可以通过在插件配置中添加这些cookies的名字来修改。使用wpsc_add_cookie( $name)添加新的cookie,使用wpsc_delete_cookie( $name)删除它。cookie名称也会修改插件使用的mod_rewrite规则,但是我建议使用简单模式缓存来避免更新。htaccess文件。
cookie的名称和值是用来区分用户的,所以你可以有一个cookie,但是不同类型的用户有不同的值。他们会得到不同的缓存文件。

看见plugins/searchengine.php作为一个例子,我用我的没有朋友的广告插件。

解决纷争

如果当你安装插件时事情不工作,这里有一些事情要检查:

  1. web服务器可以写wp-content吗?
  2. 有没有wp-content/wp-cache-config.php?如果没有,将文件WP-super-cache/WP-cache-config-sample . PHP复制到wp-content/wp-cache-config.php,并确保WPCACHEHOME指向正确的位置。
  3. 有没有wp-content/advanced-cache.php?如果没有,那么必须将WP-super-cache/advanced-cache . PHP复制到wp-content/中。您必须编辑文件并更改路径,使其指向wp-super-cache文件夹。
  4. 如果页面根本没有被缓存,按照上面的建议,删除wp-content/advanced-cache.php并重新创建它。
  5. 确保下面一行在wp-config.php,并且在“require_once(ABSPATH。WP-settings . PHP ‘);”线路:
    define( 'WP_CACHE', true );
    
  6. 再次尝试设置->WP超级缓存页面,启用缓存。
  7. 在wp-content/cache/supercache/中查找。那里有目录和文件吗?
  8. 你的php错误日志里有什么吗?
  9. 如果您的浏览器在安装超级缓存后一直要求您保存文件,您必须禁用超级缓存压缩。进入设置->WP超级缓存页面,在那里禁用它。
  10. 当PHP的安全模式被激活时,这个插件不能很好地工作。这必须由您的管理员禁用。
  11. 如果页面被随机超级缓存,有时没有,你的博客可能会被浏览,无论是否有“www”前缀。您应该选择一种方法并安装强制www首选项插件,如果你使用的是旧的WordPress安装。最新版本会自动重定向(无论如何,你应该一直运行WordPress的最新版本!)
  12. Dreamhost的私有服务器用户应该编辑wp-content/wp-cache-config.php,并将缓存目录设置为“/tmp/”,如果他们收到关于增加CPU使用率的错误。看到这个了吗讨论为了更多。
  13. 文件锁定错误,如“无法获取密钥0x152b:权限被拒绝…”或“页面未被WP超级缓存缓存”。无法获取互斥锁。是您可能必须使用文件锁定的标志。编辑wp-content/wp-cache-config.php并取消注释“$use_flock = true”或将$sem_id设置为不同的值。作为最后的手段,您也可以从管理屏幕禁用文件锁定。
  14. 如果使用粗略文件锁定,请确保cache/wp_cache_mutex.lock可由web服务器写入。
  15. 缓存文件夹不能放在NFS或Samba或NAS共享上。它必须在本地磁盘上。除非缓存文件夹位于本地计算机上,否则文件锁定和删除过期文件将无法正常工作。
  16. Garbage collection of old cache files won’t work if WordPress can’t find wp-cron.php. If your hostname resolves to 127.0.0.1 it could be preventing the garbage collection from working. Check your access_logs for wp-cron.php entries. Do they return a 404 (file not found) or 200 code? If it’s 404 or you don’t see wp-cron.php anywhere WordPress may be looking for that script in the wrong place. You should speak to your server administator to correct this or edit /etc/hosts on Unix servers and remove the following line. Your hostname must resolve to the external IP address other servers on the network/Internet use. See http://yoast.com/wp-cron-issues/ for more. A line like “127.0.0.1 localhost localhost.localdomain” is ok.
    127.0.0.1 example.com
    
  17. 如果旧页面是通过超级缓存提供给访问者的,那么您可能会错过Apache模块(如果您不使用Apache,则错过它们的等效模块)。3个模块是必需的:mod_mime,mod_headers和mod_expires。最后两个对于确保浏览器加载站点上现有页面的新版本尤其重要。
  18. 错误消息,“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/中。如果不正确,缓存引擎将不会加载。
  19. 缓存不起作用。当我重新加载时,我的博客上的时间戳不断变化。检查您的。htaccess规则匹配超级缓存目录所在的位置。您可能需要对其进行硬编码。尝试禁用超级缓存模式。
  20. 如果生成了超级缓存文件但没有提供,请检查所有wp-content/cache/超级缓存文件夹(以及每个wp-content cache和超级缓存文件夹)和wp-content/cache/.htaccess的权限。如果您的PHP作为Apache的不同用户运行,并且权限严格,Apache可能无法读取PHP生成的缓存文件。要解决这个问题,您必须在您的wp-config.php中添加以下代码行(将其添加到WP_CACHE define之上。)然后清空你的缓存。
    umask( 0022 );
    
  21. 如果您在插件中启用压缩后在浏览器中看到垃圾,压缩可能已经在您的web服务器中启用。在Apache中必须禁用mod_deflate,或者在PHP中可能启用zlib压缩。有三种方法可以禁用它。如果你有root权限,编辑你的php.ini,找到zlib.output_compression设置,确保它是“Off ”,或者在你的。htaccess:
    php_flag zlib.output_compression off
    

    如果这不起作用,将这一行添加到您的wp-config.php中:

    ini_set('zlib.output_compression', 0);
    
  22. 当你访问你的网站时,出现“死亡白屏”或空白页面几乎总是由PHP错误引起的它也可能是由APC引起的。如果有问题,禁用PHP扩展,用eAccelerator或Xcache替换。
  23. 卸载后,如果你也删除了WordPress mod_rewrite规则,你的永久链接可能会中断。通过访问设置->永久链接页面重新生成这些规则,并再次保存该表单。
  24. 如果你的博客拒绝加载,确保你的wp-config.php是正确的。你是否遗漏了一个开始或结束的PHP标签?
  25. 你的首页还可以,但是帖子和页面给了404分?选择自定义永久链接结构后,进入设置->永久链接,点击“保存”。您可能需要手动更新您的。htaccess文件。
  26. 如果某些字符没有正确出现在您的网站上,您的服务器可能配置不正确。你需要告诉访问者使用的是什么字符集。进入“设置”->“读取”并复制“页面和进纸编码”值。编辑。htaccess文件以及所有的超级缓存和WordPress重写规则,并将其添加到顶部,用复制的值替换CHARSET。(例如,“UTF-8”)
    AddDefaultCharset CHARSET
    
  27. 使用Cron视图帮助诊断垃圾收集和预加载问题。使用该插件来确保作业已安排好,以及安排在什么时间。查找wp_cache_gc和wp_cache_full_preload_hook作业。
  28. 错误消息,“WP超级缓存已安装但已损坏。常量WPCACHEHOME必须在文件wp-config.php中设置,并指向WP超级缓存插件目录。”出现在每一页的末尾。你可以删除wp-content/advanced-cache.php,重新加载插件设置页面或者编辑wp-config.php,寻找WPCACHEHOME,确保它指向wp-super-cache文件夹。这通常是WP-content/plugins/WP-super-cache/如果不正确,缓存引擎将不会加载。
  29. 如果你的服务器因为插件使用的信号量而陷入麻烦,那是因为你的用户使用了文件锁定,这是不推荐的(但只有少数用户需要)。您可以通过定义常量WPSC _禁用_锁定,或定义常量WPSC _移除_信号量来全局禁用文件锁定,以便在缓存每个页面后调用sem_remove(),但这似乎会给请求相同信号量的其他进程带来问题。最好禁用它。
  30. 将wp-config.php或wp-cache-config.php的变量htaccess _ path设置为全局路径。如果插件在错误的目录中查找文件,则返回htaccess。如果你以不寻常的方式安装了WordPress,这可能会发生。
本文来自网络,不代表资源嘻嘻吧立场,转载请注明出处:https://ziyuanxx.com/archives/236.html
上一篇
下一篇

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@zhutibaba.com

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部