BLOG系统搭建备忘

来源:互联网 发布:mac怎么截取视频片段 编辑:程序博客网 时间:2024/05/03 02:27
    在Dreamhost上买了个虚拟主机,这两天兴致勃勃地自建了一个Blog系统,多用户版的,呵呵。
    在此记录下自己在搭建过程中遇到的困难及解决方法,以备日后查阅。

    毫不犹豫地选择了wordpress,它应该是当前最火的blog系统吧。
    由于Dreamhost并不支持泛域名解析,所以我没有用sub-domain的方式(我晕,尝试了好几次,查了些资料才知道不支持),采用的是sub-directory的方式。
    最开始,我选择的PHP版本是4.x,安装起来没有任何问题,但是安装完后,URL总是多了个叫做cgi-system的子路径,特恼火,这样就完全不对了。查资料,原来很多人都碰过这种问题。网上有人建议修改代码,有人建议用PHP 5.x。怎么方便怎么玩,呵呵,我就用PHP 5.x好了。
    嗯,安装顺利,注册、登录也一切顺利。

    可是不能保存中文,一旦输入中文,保存,显示的就是“?”,我的天,我要那么多“?”干吗?查询资料,原来是字符集的问题。运行以下三条命令,
    SET NAMES utf8;
    SET CHARACTER SET utf8;
    SET COLLATION_CONNECTION='utf8_general_ci';
仍旧不见好。
   
    我在查询一下table创建的SQL语句,我FT,默认字符集还是latin1,呵呵,偶霸王硬上弓,先导出SQL语句,把创建table的语句默认字符集全改成utf8,重新倒入数据库,呵呵,好啦!

    之后再查资料,原来其实没必要这么麻烦。可以这样修改:
  1. 修改wp-includes/wp-db.php
  2. $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
  3. //在以上语句之后加上以下一行
  4. $this->query("SET NAMES 'utf8'");

    也可以这样修改,修改根目录下wp-config.php中的字符集和连接方式为:
      define('DB_CHARSET', 'utf8');
      define('DB_COLLATE', 'utf8');
 
    嗯,中文问题总算OK了。
    另外稍说明,把一个blog系统从一个主机转到另一个主机,blog的php文件和db原封不动的搬过去是行不通的。即使只改php文件系统路径,不改db,似乎也不行。偶没有仔细研究过php代码,原因我不敢妄自揣度,以后对源码感兴趣的话再来发表评论。

    关于wordpress中文版的问题,wordpress.org.cn上面有详细的讨论,偶的zh_CN.mo没有起作用,嗯,没精力详细去研究,反正都差不多。
    关于theme,wordpress自带的几个theme都很丑的。网上找了一个,感觉挺漂亮的,可惜是英文的。如果装了中文语言包,不需要修改他就是中文的,呵呵,偶不管那么多,hard code把它改成了中文。另外稍作了修改。在IE下感觉还行,但是Firefox下面,还是稍显难看。点击这儿可以查看我BLOG。因为是多用户版,你也可以从http://blog.zijinshi.cn/index.php申请blog。
    Theme的原作者是Jam,偶在此表示感谢。同样,我也把自己修改后的Theme共享出来。下载

    在以后的时候,又出现了这种情况:当默认语言为中文的时候,用户注册blog会出现如下提示:
Warning: Invalid argument supplied for foreach() in /home/user/wp/wp-includes/capabilities.php on line 31
并且用户无法登录管理这个刚注册的这个blog,打开刚注册的blog,发现blog无法显示中文。原因是database的默认字符集不是utf8(仅仅table被改成了utf8,但如果database不是,那么以后新创建的table照样不是)。方法可以在phpAdmin中修改此数据库的属性,也可以用SQL语句。
ALTER DATABASE `DataBaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    嗯,问题解决了。



(完)

原创粉丝点击