存档

文章标签 ‘apache’

搬家日记(X-Space到WordPress)

2009年2月8日

搬家工作基本完成,颇发扬了自已动手,丰衣足食的精神,记录一下吧。

我的blog原先架在Discuz!的附属的Supesite的X-Space上,目的是转到现在的wordpress上来。本来以为会有现成的blog搬家工具,结果各处一搜,竟然都不支持X-Space自已host的这种blog,唯一看到一个叫blogbak的,也只能把X-Space上的blog导到它自己的51某某站上。
那没有现成的工具,那就用RSS吧,结果发现X-Space不能把日志导出成RSS2.0的文件,作罢。那,从WP这边导入X-Space的rss的feed总是万能的了吧,结果再一次被X-Space的RSS输出打击掉,它只输出一定长度的文章,结果长的文章的后半部分就被截掉了,而且不能通过设置改变这个行为。。。。

没办法,自己写程序搬家好了。。。不过也好,这样comment和commentor的联系方式什么的都能留下,否则我就放弃他们了
(注:上面的功能新版的X-Space好像已经有了,不过我的版本很老。。。)

我写的这些代码适用于满足以下条件的人:
1.是自己host的X-Space和wordpress,自己的主机或者虚拟主机都行,专门的博客提供商(BSP)就不行了
2.X-Space和wordpress在同一个数据库中(一般虚拟主机都这样),如果不是,就得自己改改代码了
3.X-Space的文字编码是gb2312,wordpress的是UTF-8(话又说回来,要是编码相同,连程序都不用了,完全靠SQL也能完成搬家)

搬家步骤:

  1. 正常地安装wordpress
  2. 首先,要小改一下X-Space在数据库里的supe_spacecomments表,在它之中加一列integer列,叫wpID,用于保存原blog里日志的ID和新WP的blog中日志的ID的对应
  3. 打开本文附件convertscript.zip里的两个PHP文件,把里面的数据名、用户名密码等改成实际的值,上传到自己的虚拟主机上
  4. 执行convertArticle.php,把原有的日志转换到WP中(新文章的作者会是默认的id=1,也就是admin用户)
  5. 执行convertComment.php,把原有的comment也转到WP中
  6. 跑一下这句sql: UPDATE `wp_posts` SET `post_name` = md5( `post_content` ) WHERE `post_name` = “”, 用来给每篇日志生成一个post_name,用在该文的静态地址中

至此,搬家基本就算是完成了,不过有点美中不足,就是WP的wp_posts表中有一列叫comment_count,算是个冗余的计数信息吧。默认它是0的,我写了下面的sql以填写它的值:

UPDATE `wp_posts` AS w
INNER JOIN
(
    SELECT p.`ID` AS `wpID` , count( * ) AS `comment_count`
    FROM `wp_posts` AS p
    INNER JOIN `wp_comments` AS c ON p.`ID` = c.`comment_post_ID`
    GROUP BY p.`ID`
) AS ct
ON w.`ID`=ct.`wpID`
SET w.`comment_count`=ct.`comment_count`

但是我的512j的服务器上mysql是4.0.22版本,还不支持子查询。。。。
不过,这个字段有没有用我也不确定,因为各种地方显示的comment计数都是正常的。。。

最后,小感慨一下。以后挑blog建的时候,要先研究好这东西的接口怎么样,否则就容易上X-Space这样的贼船了。。。

技术, 杂记 , , ,

一些安装SVN的笔记

2007年10月5日

这里的内容是安装与apache结合的svn服务器端的记录

apache2:
./configure –enable-dav –enable-so –enable-maintainer-mode

subversion:
./configure(如果apache2不是安在默认目录了,会报错,要加参数指明apr和apxs的位置)
make
make install

在httpd.conf中:
make install应该已经添加了的内容:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
加入:
<Location /svn> (/svn是用户浏览时url中的路径)
        DAV svn
        SVNListParentPath on
        SVNParentPath /home/svn    (这个目录是实际数据存储的目录)
        AuthType Basic
        AuthName “Subversion repositories”
        AuthUserFile passwd
        #AuthzSVNAccessFile svnaccessfile
        Require valid-user
</Location>
在/usr/local/apache2下,bin/htpasswd -c passwd loudly

创建分支时
cd /home/svn svnadmin create repname

http://server-IP/svn/repname

运维 ,

列一下自己的MAP安装程序吧

2006年7月21日

UploadFiles/2006-7/721619265.rar装的次数太多了,不过每次的设置越来越少,列个表吧

1装apache
文件httpd-2.2.0.tar.gz
命令./configure –enable-so (它默认的prefix=/usr/local/apache2)
自启方法:把系统自带的init.d/httpd改成新的目录就得了
附件一就是这个httpd文件(直接上传非说文档类型不对,只得打包)

2装mysql
参考页面:http://dev.mysql.com/doc/refman/5.0/en/quick-install.html
基本就按上面的做就得了
文件:mysql-5.0.18.tar.gz
命令:./configure –prefix=/usr/local/mysql –with-extra-character=gb2312,gbk,big5
(注:后来在一个redhat8.0上装mysql,发现用上面的命令根本没有gb2312编码,所以改用./configure –prefix=/usr/local/mysql –with-charset=gb2312 –with-extra-charset=all)
安完后到/usr/local/mysql去
执行bin/mysql_install_db –user=mysql
自启方法:在mysql的源码目录中有个support-files/mysql.server,把它拷为/etc/rc.d/init.d/mysqld,然后加上执行权限就行了

方便起见,用这个命令grant一下来自非localhost的root的权限:
grant all on *.* to root@’%’ identified by ‘xxxx’;

后来升级了内核,mysql会crash,原因不太清楚,编译时多加了几项:
./configure –prefix=/usr/local/mysql –with-extra-charsets=gb2312,gbk,big5 –with-mysqld-ldflags=-all-static –enable-assembler –with-debug
还要编辑一下生成的Makefile,我的CXXFLAG字段是这样的:CXXFLAGS = -g -O -DDBUG_ON -DSAFE_MUTEX -fno-implicit-templates -fno-exceptions -fno-rtti -felide-constructors
参考的是以下两个地址:
http://dev.mysql.com/doc/refman/5.0/en/installing-source.html
http://dev.mysql.com/doc/refman/5.0/en/configure-options.html

3装PHP5
参考页面:http://www.php.net/manual/en/install.unix.apache2.php
文件:php-5.1.2.tar.gz
./configure –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –enable-ftp

4.关于gd的相关内容

今天我又装了个gd,要装的东西挺多的,在这列一下用到的文件:

freetype-2.3.4.tar.gz  gd-2.0.34.tar.gz  jpegsrc.v6b.tar.gz  libpng-1.2.16.tar.gz  zlib-1.2.3.tar.gz
除了gd本身以外,其余几个都是解开,./configure;make;make install就完事了
最后编gd,gd其实也是这个步骤,它是自动检测另外几个包的安装情况,configure的时候会列出来其它几项的有无,看一下对不对就是了,如果不对的话configure的时候再指定路径。
然后就是再编译一下php,我用到的命令为:
./configure –with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-gd –with-jpeg-dir –with-png-dir –with-zlib-dir –with-freetype-dir –enable-ftp

运维, 技术 , , ,