網頁

2008年6月11日 星期三

mu-wordpress

由於不想維護太多份的 wordpress code (之前手上有四份左右),很久之前就想要換成 mu-wordpress 。但是以前怎麼找都找不到 wordpress.com 那邊用的 nightly build 的 subversion repo 又懶得自己從 tarball import ,所以就一直找藉口沒動。直到暑假某次無意中終於發現了神秘的位置,才又想起這件事。

題外話:打到這裡 FireFox BonEcho 2.0 nightly build 0930 連續當了兩次,當我正在懊惱我還沒裝 AutoSave Plugin 時,發現竟然大部分已經被存成草稿,只漏了一句,不過馬上又當了一次。(不過 Firefox 2 真的速度快很多!)wordpress 真是太酷了。

事實上之前已經有敢死隊衝過 mu-wordpress 了,可是後來跑一跑之後這位胸毛男說,mu-wordpress 的資料表那樣建太機車了,看他不爽,於是就又跳槽去 lyceum ,所以害我很猶豫是要跟隨胸毛男的 技術支援,還是跟 mu-wordpress 就好。 反正到最後也不知道怎麼搞的,我就去 svn co 下了 mu-wordpress ,然後玩到現在。事實上,mu-wordpress 已經把大部分的工作都做的很懶人,以前還需要自己去動 wp-config.php ,現在根本就全部都在 web 上面點一點之後就可以動了,並且目錄權限不對他也會幫你檢查,然後很貼心的告訴你指令該怎麼打。既然胸毛男之前也寫過「wordpress 多人板安裝手札」其實這裡大概也不需要介紹,反正都是很直覺的點一點填一填。我是選用 sub-domain 的方式,原因有機會以後再說,所以對應的 DNS 以及 WEB Server 都需要做些對應的設定。

例如在 BIND 當中的話可以直接用 WILDCARD record 來設定:
* CNAME blog

然後在對應的 APACHE 上面也要有對應的 VHOST 設定:
<VirtualHost *:80>

ServerAdmin admin@domain.tld
DocumentRoot /path/to/mu-wordpress
ServerName blog.domain.tld
ServerAlias *.domain.tld
ErrorLog /path/to/logs/httpd-error.log
CustomLog /path/to/logs/httpd-access.log combined

<Directory />
AllowOverride None
Order Deny,Allow
Deny from all
</Directory>

<Directory “/path/to/mu-wordpress”>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

# RedirectMatch 301 (*) http://xxx.domain.tld$1
LogLevel debug

</VirtualHost>

然 後接下來就可以直接從 SiteAdmin panel 開始 add user/add blog 了。因為我要轉的 blog 其實並不多且版本差異沒很大(最舊的也有 WP1.6) ,所以我直接用 export/import 的方式解決。如果沒有跟在 SVN 後面當白老鼠的,可能還沒有 import/export 功能怎麼辦?沒關係,有好心人幫我們做成了 「WordPress-to-WordPress Import Plugin」,不過如果你版本真的太舊,裝了 plugin 也不行的話,那看是先升級一下,或是直接從 DATABASE 裡面轉換囉。

值 得一提的是,一開始我 export 的檔案很大,大概快 5MB ,我還沾沾自喜說,哇,我真會寫,寫這麼多喔。後來 import一直死在奇怪的地方,才把 XML 打開看,才發現原來他會連 SK2 擋下來的 SPAM (只要還沒刪掉)一起 EXPORT ,於是如果先去 SK2 清一下然後再 EXPORT ,就只剩下 880kb 。在轉換過程中大至上順利,除了一開始又發生 table 的 charset 沒弄對的問題(看來還是得在 ports.conf 裡面強制把 mysql 預設成 UTF-8,我以為 5.x 預設就已經是了沒想到還跳回去 LATIN1),另外還有 cdst 上面那淫魔荒廢已久的 blog 一整個早就爛了,查一下才發現是「MySQL 5.0.15 亂碼」這篇提到的問題,處理一下也很順利完成。

最 後比較麻煩的部份是之前放在 uploads 目錄底下的檔案,雖然可以直接 cp 一份過來(丟到 wp-content/blogs.dir/ID裡面),不過網頁路徑要對應換成相對的「/files/2006/…」,一開始 inport 的時候沒發現,不然就在 xml 檔案裡面全部掃一次再匯入就好了。

至於以前很擔心的 plugin / theme倒是沒遇到很大的問題, K2 可以正常的使用,除了需要改一下下面這檔案以外:
Index: app/includes/info.php
===================================================================
— app/includes/info.php (revision 192)
+++ app/includes/info.php (working copy)
@@ -115,16 +115,17 @@
$posts_per = 1;
}

- if (strpos($wp_version, ‘2.1′) === false) {
+ if (strpos($wp_version, ‘2.1′) === false && strpos($wp_version, ‘mu’) ===false) {
$search = ‘/FROM\s+?(.*)\s+?GROUP BY/siU’; // Wordpress 2.0.x
} else {
$search = ‘/FROM\s+?(.*)\s+?ORDER BY/siU’; // Wordpress 2.1
}

另外,SK2 好像也正常,雖然說現在還沒看到 spam 進來 XD,剩下的就見招拆招囉。

喔 還有,我又惡搞了本來兩個很好看的 theme ,現在被我搞得不三不四噁心八啦,但是我還是不禁要念,為什麼可以這麼機車,同樣的語法在 IE 跟 Firefox 看的感覺就不一樣!一整個暴走之後只好祭出 try and error 大法亂調,所以現在就產生出這個很奇怪的東西出來啦。(沒辦法,原來的雖然好看但是我一整個完全無法接受 fixed width 的東西,所以又浪費了半天在搞 CSS)。

最後,因為暫時沒空去看 mu-wordpress 的 code ,所以我先把 blog.cookys.org 送 redirect 到這裡來了,還請多加包涵。

UPDATED: 剛剛晃了一下 Lyceum 官方網站 ,忽然瞭解為啥胸毛男的 pagerank 忽然變這麼高了。原來 Whatup 為 Lyceum 貢獻這麼多了,那沒去投靠免費技術支援好像是個錯誤的決定? XD。