蓝天,小湖,湖水中一方小筑

Wordpress搬家完毕

折腾了一晚上,总算把原来架在自己机器上的WordPress弄到了Debian的那台机器上,说说折腾的过程吧   首先,机器上要有WP,其实一个简单的方法就是从WP的官网上下载压缩包,解压到服务器上某个可以通过Web访问到的目录下,然后远程访问就可以了,但是既然是debian,而且它的源里面也有WP,所以嘛,当然就是直接apt-get了。

WP是弄下来了,但是不会用了。本来压缩包那种方式就是把全部代码解压,访问就可以了,但是debian下用apt- get来的东西它给放在/use/share里面了,总不能让我弄个符号链接指向那吧,那也太不安全了吧,也太不智能了,嗯。于是用dpkg -L看它到底给我弄下来 了些啥。在滚动文字的最底下看到了一个/usr/share/doc/wordpress/README.Debian的文件,有戏。打开,果然看到了安装步骤 ,它告诉我要用examples目录下的setup-mysql生成配置文件和数据库,然后再访问,真麻烦,不过也只好这样了。setup-mysql是一个脚本,需 要用root权限运行,它执行的功能很简单,就是在MySQL数据库中建个数据库,并生成一个管理用户。只要提供管理用户名,用户的密码它在脚本里面给用random 加了密,就是这几行:

# Generate a random password
MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
LENGTH="8"
while [ "${n:=1}" -le "$LENGTH" ]
do
    DB_PASSWORD="$DB_PASSWORD${MATRIX:$(($RANDOM%${#MATRIX})):1}"
    let n+=1
done

接着上面的,不管它生成什么密码,反正是不用我去记了。使用方法也不难,先拷到某个地方,再给它+x,然后运行,按它给的参数就可以了,新建一个的话需要的参数是

./setup-mysql -n [username] [domain]

然 后它就会在MySQL里面生成一个用户[username],然后建个数据库blog,数据库里面是空的。比较郁闷的是居然不让选数据库的名称。还有那个 [domain]它是会去ping的,弄不通的话它不让建,丫管的还真多,FT。还有就是它默认生成的配置文件是针对某主机的,我是用的IP,也可以用域 名什么的,反正自己需要在Apache的配置文件里面写清楚,要不然访问不到。脚本运行完毕后会生成一个配置文件,在/etc/wordpress下,文 件名是config-[domain].php。并且它会告诉你,去访问你在那台机器上的blog吧,安装它。就像前面所说,它按主机名或域名或IP地址 生成配置文件,但是在那个地址你要怎么才能访问到你的blog,那是你Apache配置文件的事情。像我给Apache弄的配置文件就是:

Alias /blog "/usr/share/wordpress"
/usr/share/wordpress>
    Options FollowSymLinks
    AllowOverride Limit Options FileInfo
    DirectoryIndex index.php

是写在一个虚拟主机文件里面的,然后用a2ensite给做了个符号链接到sites-enabled里面的。于是按ip:port/blog就可以访问了,一路ne xt,安装完毕,但是打开的时候,发现一堆问号,终于让我碰到郁闷的乱码问题了,倒一个先,嗯。 出乱码了就要调撒,WP原来有过乱码,只要在wp-include /wp-db.php里面某处加一行,加的是下面一行,上面一行是原来自带的。

$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
$this->query("**SET NAMES 'utf8'**");

告 诉php我要用utf-8连接数据库就可以了,但是这次发现加上了这个也木有用,继续郁闷。想到数据库也有编码,于是转向phpmyadmin,一查看, 果然用那个啥破脚本生成的数据库用的是latin编码,不出问号才怪。看看数据库一堆表和字段,都用的是latin编码,手动改了几个,NND想改死我, 作罢,试了试SQL语句,写一个错一个,继续作罢。只好想想从脚本上做文章了,打开一看,它的数据库连接字段是写在个字符串里面的,把刚才改编码时得到的 SQL语句加了进去,就像这样,这是运行diff -u的结果。

--- /root/setup-mysql   2007-05-02 21:39:09.000000000 +0800
+++ /usr/share/doc/wordpress/examples/setup-mysql   2007-04-05 06:27:33.000000000 +0800
@@ -64,7 +64,7 @@
 # Create the database and user
 # Wordpress's install.php creates the tables btw
 mysql --defaults-extra-file=/etc/mysql/debian.cnf <
-CREATE DATABASE $NAME DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
+CREATE DATABASE $NAME;
 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
 ON $NAME.*
 TO $NAME@localhost

然后删除/etc/wordpress下的配置文件,删除blog数据库,再删除/srv/www下的符号链接(说真的,我还是不懂为啥它要给我建个链接),再次运行 那个破脚本,完后再看数据库,行了,接着再装WP,也没问题了,TNND总算弄完了。 大事弄完了,最后就是倒数据了,本来WP有导入导出功能的,但是自己主机上的这个运行导出出错,只好手动折腾数据库了。一开始把所有的表都弄过去,结果 出错,有一些配置的东西,两个系统不,当然出错,郁闷的把表,数据库什么的全删了,重新来过。第二次学乖了,只把那些有用户信息,文章信息,评论信息的那 些东西导过去,再看,总算行了,这回才算真正弄完了,松口气,顺便擦擦汗 :) btw:不像TeXLive,WP只会在它的目录下读主题和插件,就是/usr/sh are/wordpress,这样能做改动的只有root了,看来要是出去用虚拟主机,还是把WP上传到自己的家目录下吧。 btw2:新版的WP可以正确使用

标签了,不错不错 :-)