解决cos-html-cache在Godaddy主机下无法生成静态文章页问题

godaddy主机(Linux系统)上部署了wordpress程序,安装了cos-html-cache生成静态首页与静态文章页,然而只有首页可以静态化,文章页无法生成。

造成该问题的原因是Godaddy的主机太安全的缘故,首先来看下如下变量与函数的差别:

  • $_SERVER['DOCUMENT_ROOT']变量:返回服务器中定义的当前脚本所在的文档根目录   
  • dirname(__FILE__) 函数:返回的当前脚本的绝对路径

而cos-html-cache中采用了$_SERVER['DOCUMENT_ROOT']变量来获取网站目录却在Godaddy这类BT主机商遭遇了问题——测试生成首页无法生成静态文章页。

解决方法比较简单,将以下内容保存为get_path.php文件放到网站根目录上: 

  • <?php
  • echo "SeverPath: ".dirname(__FILE__)."/";
  • echo "<br>";
  • $path = $_SERVER['DOCUMENT_ROOT']."/";
  • echo "DOCUMENT_ROOT: ".$path;
  • ?>

访问这个文件获取到的信息如下: 

  • SeverPath: /home/content/is36/html/www.is36.com/
  • DOCUMENT_ROOT: /var/chroot/home/content/is36/html/

是否看到差别了?进入WordPress后台,打开如下链接(自行修改域名):

http://www.is36.com/wp-admin/plugin-editor.php?file=cos-html-cache/cos-html-cache.php

然后把$path = $_SERVER['DOCUMENT_ROOT']."/";修改为$path = "/home/content/is36/html/www.is36.com/";

修改完成后点击更新文件,然后再用另外一个未登陆WordPress的浏览器访问首页跟文章页,你会发现都更新了!(注意:登陆的时候页面不会被缓存,或者退出登陆访问页面。


吐槽:Godaddy主机无法在主机面板里调整默认文档页的先后顺序,经测试发现index.php文件的优先级高于index.html,如果生成的静态页index.html无法被先访问就失去了静态化的意义。那么针对Godaddy主机这个不算问题的问题,解决方案也简单。把以下规则加入到根目录的.htaccess文件里: 

  • <Files ~ "^.(htaccess|htpasswd)$">
  • deny from all
  • </Files>
  • DirectoryIndex index.html index.php      
  • order deny,allow

Tags: cos-html-cache, godaddy, wordpress

上一篇: 记录一下BuyVM2013年搬迁数据中心
下一篇: Windows命令行下终止进程的命令taskkill与tskill使用方法

相关文章

发表评论