NinGoo.net --- Oracle DBA|MySQL DBA|数据库管理,架构,监控与性能优化

    启用wordpress静态化插件cos-html-cache2.3

    由于主机空间在美国,访问速度一直不是很如意,前几天同事还抱怨说速度太慢,恰好看到cosβ的cos-html-cache2.3已经支持wordpress2.3了,于是就想试用一下,看看是不是能有所改善。

    原来的永久链接结构使用的/年/月/日/文章名.htm的格式,过于冗长,造成静态化页面的目录过深。其实以前就想过修改永久链接,但是改了会造成搜索引擎的失效,犹豫了很久还是没敢下手。看到cosβ推荐的wp plugin permalinks-migration真是大喜过望,真是只怕想不到,就怕找不到,只要有需求,就会有插件,呵呵。

    插件启用后,看着缓存目录下生成的一大堆html文件,基本在20k左右,试着访问了几个已经缓存的页面,感觉速度是有那么一点点的提升,不知道是不是心理作用,哈哈。

    最后,感谢一下cosβ兄的杰作。

    配置phpMyadmin

    昨天升级wordpress2.3,想在本地搭个测试环境,利用wordpress data backup插件的备份sql,本来想通过命令行mysql -uroot -ppasswd -Ddbname < backup.sql的方式导入,结果由于一个些垃圾留言导致备份出来的sql有很多语法问题。折腾了半天,想起mysql有个叫phpMyadmin的php软件很不错,dreamhost提供的就是这个。

    于是下载,解压,放到apache的htdoc下。然后复制phpmyadmin/libraries/config.default.phpphpmyadmin/config.inc.php,打开修改如下参数:

    $cfg['Servers'][$i]['host'] = 'localhost'; // mysql服务器
    $cfg['Servers'][$i]['port'] = '';             // mysql端口
    $cfg['Servers'][$i]['auth_type'] = 'config'; // 认证方式
    $cfg['Servers'][$i]['user'] = 'root';   // mysql用户
    $cfg['Servers'][$i]['password'] = 'passwd'; //密码

    启动apache,浏览http://localhost/phpmyadmin,报错:

    Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

    得,看来php的设置有问题。搜google/baidu,找到php安装目录下的php.ini:

    session.save_path=”c:/PHP/tmp” // 注意c:/php/tmp目录一定要存在
    extension=php_mbstring.dll // 注意去掉默认的前面的分号,也就是启用该功能

    这么折腾了半天,还是报错,晕。再搜网上,都是这么解决的啊。木有办法了,重启,好了-_-。Windows下重启有个时候真的是包治百病。

    升级到wordpress2.3

    折腾了一天,终于将blog系统升级到wordpress2.3中文版。下午一直在看网上的一些升级文章,wordpress2.3由于数据库改动较大,升级可能导致很多插件冲突。所以预先将目前在用的几个插件都先升级好,尤其是Google XML Sitemaps和Extended Live Archives,ELA官方没有更新,请使用网友istef修改的版本。另外,由于wordpress2.3引入了自带的tag系统,原来用的tag插件UTW将无法使用,需要卸载。原来的tag可以通过wordpress提供的导入功能导入到新系统中,方法是,在后台管理中选择管理->导入->Ultimate Tag Warrior,点几下鼠标即可。

    升级过程很简单:

    第一步:备份数据库。我用的dreamhost主机,最简单的备份方法,一是使用WordPress Database Backup插件备份;另外一种方法就是新建一个mysql库,然后利用dreamhost提供的phpMyadmin将原库复制一份到新库中,注意字符集的选择。

    第二步,配置好wp-config.php中的数据库连接信息,然后上传wordpress2.3中文版上传到根目录下,将网站原目录改名,再将新的wordpress2.3的目录改成原来的名字。通过前两步,即使升级失败,也可以方便的切换回旧系统,万无一失。

    第三步,执行/wp-admin/upgrade.php升级,点一下鼠标,一秒钟搞定。

    第四步,迁移upload的文件,修改模板和插件等。

    前面三步都非常简单,也没什么风险。主要是第四步要花比较多的时间。原来相关文章的功能依赖于UTW插件,而wordpress2.3自带的tag系统目前还比较弱智,一是不好管理,二是没有引入根据tag显示相关文章的插件。所以不得不为这两个功能又装上两个新的插件:Advanced Tag Entry用于管理tag,Tag Converter 4 UTW用于显示相关文章。

    还有一个问题,就是原来使用ST_AddRelated2Feed插件给Feed输出加上了相关文章,但是这个插件也是基于UTW的,所以需要修改,使用tag converter 4 UTW来获得相关文章。由于tag converter 4 UTW的TC_ShowRelatedPostsForCurrentPost函数采用的直接echo输出相关文章而不是return的方式,导致Feed中相关文章在最前面显示了,所以还得在tag converter 4 UTW中复制一个TC_ShowRelatedPostsForCurrentPost4Feed函数,将相关文章的字符串return而不是echo

    顺便提一下wordpress2.3自带的tag系统的两个调用函数:the_tags()用于显示某篇文章的tag,wp_tag_cloud()用于显示标签云。两个函数都有大量的参数,可以到/wp-includes/category-template.php中找到函数定义的地方了解具体的参数。

    同时将模板的字体从12px调大到14px,虽然看起来没那么整齐了,对眼睛还是有好处的^_^

    可能还有些没考虑到的地方,如果大家在浏览本站的时候发现问题,请留言告知,谢谢。

    关于non-existent objects与negative dependency

    logzgh的blog上看到《在obj$基表中大量的non-existent类型对象是咋回事?》。这里简单解释下non-existent objectnegative dependency

    对于Non-existent object,有两种来源,一种是drop或者rename object留下的,一种则是因为negative dendency机制。在我的试验中,这两种情况实际上都和synonym有关。

    第一种情况,对于table,view等对象的drop/rename,我没有试验到non-existent的存在,但是在删除synonym时,可以看到Obj$实际上没有删除该synonym的记录,只是将其type#从5修改成10,也就是变成了non-existent

    NING@ ning>create table test_synonym(i int);

    表已创建。

    NING@ ning>grant select on test_synonym to test;

    授权成功。

    TEST@ ning>create synonym test_synonym for ning.test_synonym;

    同义词已创建。

    SYS@ ning>select obj#,name,type# from obj$ where name='TEST_SYNONYM';

          OBJ# NAME                                TYPE#
    ---------- ------------------------------ ----------
         44651 TEST_SYNONYM                            2
         44652 TEST_SYNONYM                            5

    其中type#=2的是table,type#=5的是synonym

    [继续阅读全文]


    常用标签:

    最新评论 | Recent comments