因為 wordpress 是依靠 web server、後端資料庫(database),還有 php 這種 script language 所建構出來的,所以上面這些東西都會是需要且必備的。

Updated 2005-09-04-0105: DK長輩說這句話「這些東西都會是需要且必備的」有問題,因為這些東西缺一就動不了,本來就是必備。

由於綠島上面這台的 php code 因為被自己改到有點失常了,又加上經常忘了 CVS ,所以決定在 nb 上再裝一個起來,以下是安裝過程:(或者你懶得手動作這些事情,可以直接跳到文末,參考 WAMP 那項)

安裝 Apache 當作 web server

我不裝 IIS 的理由有幾個,一是實驗室用的 IIS 經常會有神秘的問題(像是會 cache 住資料,不管你 client reload 幾次都沒用),二是從以前到現在我最熟悉的就是 apache server,最重要的 Apache 是 open source。我不必擔心哪天會不會改版就會發生什麼很糟糕的事情。

連到 apache.org ->在左邊有個 Apahce project 的列表,選 HTTP server 的連結。

因為還不確定 Apache 2 和其他東西的相容性如何,所以我用了比較舊版的 apache server 1.3.33

Apache 1.3.33 release

點選 download 之後,往下找一下就會看到:

Apache 1.3.33 release Download screenshot

點選這一串 Win32 Binary (Self extracting): apache_1.3.33-win32-x86-no_src.exe
這就是我們要的東西。

抓回來執行,根據你的需求請參考當時的說明來選擇,懶得看的話就用預設的設定吧。

做好之後你可以測試自己的 Apache server 是不是有起來,可以打開瀏覽器連自己的機器(http://localhost),出來的結果應該會像這樣:

Apache localhost demo

安裝 PHP:
今天我發現 PHP 換了新版本了,本來裝的那套到今天已經改版到 PHP 4.4.0 了,所以我也連到 www.php.net 去安裝 PHP 4.4.0 的版本。本來是可以像之前那樣,一開始畫面最上面那行的最左邊有個 download 點進去按照說明作就可以了,不過這次很奇怪,本來點選下圖中的 tw.php.net 應該就會 download 檔案下來,但是什麼都沒有發生。

PHP Taiwan mirror error

因此我就只好手動過 ftp 去連 tw.php.net 了。

抓回來之後,就是得看目錄下的 install.txt 來手動安裝。

因為這邊用的是 Apache 以及 PHP4 ,所以根據上面的說明,我必須在 httpd.conf (你可以在你安裝 Apache的目錄下的 conf 目錄下找到這個檔案)作一些修改:

因為我們只是要裝來給 WP 用,所以用 CGI 的方式來跑就可以了。所以我們要加上這幾行在 httpd.conf 裡面(我把這些放在檔案的最後面):

ScriptAlias /php/ “c:/php/”
AddType application/x-httpd-php .php
Action application/x-httpd-php “/php/php.exe” #(@這行是只針對 PHP4 用的。)

如果要當作 Apache module 的話:

  1. 在 LoadModule section 的結尾放上 (你要根據你的 php 位置改變後面的 .dll 路徑位置)
  2. LoadModule php4_module “c:/php/php4apache.dll”

  3. 在 AddModule section 的結尾放上
  4. AddModule mod_php4.c

另外有個比較討厭的地方是 windows 預設是不讓你取以「.」開頭的檔名,看你想不想改變 Apache 的設定,把讀 .htaccess 變成 _htaccess,如果要的話就必須把 httpd.conf 中的這一行:

AccessFileName .htaccess

改成:

AccessFileName _htaccess

另外在這個地方也應該需要更動如下:

<Files ~ “^\_ht”>
Order allow,deny
Deny from all
Satisfy All
</Files>

Updated 2005-09-04-1524: 如果你把 .htaccess 改成 _htaccess 的話,你在安裝 Wordpress 之後也要根據這個更動而作修改(把 Wordpress 中會修改 .htaccess 的地方改成 _htaccess,可以用 windows 的 搜尋功能尋找檔案中含有 .htaccess 的檔案,然後用 vim 開啟那些檔案,用 %s/\.htaccess/_htaccess/g 來作取代。不過假如你有可能搬家像是搬到 un*ix 上的話,我建議還是別改了。免得增加自己麻煩。

我也把這個地方多加了一行可以讀 index.php

<IfModule mod_dir.c>
DirectoryIndex index.html
DirectoryIndex index.php
</IfModule>

又為了日後裝 awstats 的關係把預設的

CustomLog logs/access.log common

改成:

CustomLog logs/access.log combined

在 $php$目錄下你可以把 php.ini-recommanded copy 一份成 php.ini 並在最後加上這一行(最後面的位置根據你的需要來改變):

SetEnv PHPRC c:/php

如果你剛剛已經執行過 apache 的話,現在要把 apache 關掉再重開,你可以跑一個 dos command 視窗起來,然後執行下面的指令:

net stop apache

然後再跑一次:

net start apache

安裝 MySQL:

連到 http://www.mysql.com/MySQL database
我發現它也變成比較新的版本,所以又裝了這個新版本 4.1.14
根據顯示的訊息進行安裝,應該很容易就裝起來了。不過在這邊有個地方要注意一下,就是當你完成安裝之後,它會問你是不是要進行 MySQL 的設定,當你選要而且選了詳細(detail)設定,到下圖這個步驟時,我是選中間這項來設定預設的為 UTF8以支持多國語言:

MySQL Multilanguage selection

要是你跟我一樣對資料庫一點都不熟悉的話,我建議你多裝一個 MySQL Administration Tool,或是像 phpMyAdmin 之類的東西,因為在安裝 wordpress 的時候需要建立一個給 wordpress 的使用者。有這個介面會比較方便一點。

不過現在先不忙著增加新的使用者,因為在 MySQL 4.1.X 之後用了一套新的認證方式,所以你裝了 wordpress 可能還是連不上,所以我們要先用 MySQL 的 Administration Tool 先用 root 連進去:

MySQL Administration Tool login screen shot

然後在 Startup Variables->Security 裡面勾選 Use old passwords,然後再把 MySQL 重跑一次。

MySQL Use Old password

當你裝好之後,比方我用的是 MySQL 的 Administration Suite,就可以連連看自己的資料庫。然後建立一個使用者,比方說叫做 blogger。並開立一個新的 database 叫做 “wordpress”,然後把這個新建的 db 的權限(insert, update, select, alter, delete, create,drop)設定給這個使用者。

不過萬一你還是和我一樣不幸遇到這種狀況:

Client does not support authentication protocol requested by server; consider upgrading MySQL client

也沒關係,你可以照著 MySQL 官方網頁上的說明作就好了。

至於一開始怎麼進去 mysql> 的辦法,其實就是叫個 dos 視窗,輸入(我假設你安裝的時候有把MySQL的路徑設定到你的系統目錄去):

mysql -h localhost -u root -p

之後輸入MySQL root 密碼就可以了。

如果你懶得連到官方網頁去看的話,我把上面的文字整理一下就變成:

mysql> SET PASSWORD FOR
->’some_user’@’some_host’ = OLD_PASSWORD(’new_password’);

這邊的「’」符號是不能少的,結尾的「;」也不能少。

或是用:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD(’new_password’)
-> WHERE Host = ’some_host’ AND User = ’some_user’;

mysql> FLUSH PRIVILEGES;

所以到這裡基本上的東西都裝完了,就只差 Wordpress 本身了。

萬一你對安裝軟體這件事情很感冒,不想去裝額外的軟體的話,也可以在 $MySQL$/my.ini 作修改。就是在最後一行加上:

old-passwords

然後重跑 MySQL:

net stop mysql
net start mysql

Updated 2005-09-04-0111:
DJ horance 君補正:可以用 mysqladmin reload
布子贊曰:「stop/start 大概比較保險」

安裝 Wordpress:

連到 wordpress.org 去下載 wordpress。

下載之後的壓縮檔你可以解壓縮到 $Apache$/htdocs 下。解開後它預設的目錄名是 wordpress,你可以把它改成你想要的名字,比方說我就改成 wp 這樣。然後開瀏覽器去連 http://localhost/wp/readme.html這樣按照說明一步步作就行啦!

PS. 假如你日後會使用 Wordpress 的 Permalinks 功能的話,那你會需要下面的說明:

因為你按照預設值建立起來 Apache server 是不會開啟 mod_rewrite 功能的,如果你不懂我在說什麼也沒有關係,這裡有網頁可以參考。我假設你會用到這個功能好了,那你會需要修改 Apache 的 httpd.conf 中的幾個地方:

把下面這兩行最前面的「#」拿掉:

#LoadModule rewrite_module modules/mod_rewrite.so

#AddModule mod_rewrite.c

然後尋找像這樣的地方(如果你用 vim 的話可以用 htdocs 當 search 的關鍵字):

<Directory “C:/Program Files/Apache Group/Apache/htdocs”>

裡面會包著一行:

AllowOverride None

把它改成

AllowOverride All

這樣就可以了。

記得做完這些要把 Apache 重開過才會生效。

Updated 2005-09-04-0128:
根據布丁長輩的建議,我應該解釋一下這些東西是什麼意思:

  • $Apache$
  • $MySQL$
  • $php$

其實這些東西只是用來代稱 Apache/MySQL/php 安裝目錄的路徑而已。比方說在前面我們提到這一段:
C:/Program Files/Apache Group/Apache/htdocs
那以這個安裝目錄來說,當寫成 $Apache$/htdocs 的時候,$Apache$實際就代表”C:/Program Files/Apache Group/Apache”這一串東西,同理,$MySQL$和$php$亦然。

Updated 2005-09-18-0133:

WAMP5 logo
如果你覺得前面安裝 Apache、PHP、MySQL那些太複雜了,你可以考慮裝這個 WAMP。它會幫你安裝 Apache、MySQL、PHP這些東西,不過裝了這個你可能會需要修改 Wordpress 的一個檔案 wp-db.php,詳情請參考敝文 <Wordpress 搬家… >

Updated 2005-1114:

關於 error message 出現的話,我的 debug 方法算是很笨拙的,基本上都是看 error message 是什麼來決定我使用的方法,比方說要是 wordpress 這些設定都沒問題,那可能就是連線。

Debug by telnet to MySQL server當你執行這個命令之後,如果出現像是 refuse 之類的(按照出現的訊息來判斷),那就表示有防火牆之類的東西擋在中間。至於是不是有預設防火牆或是其他網路設定問題,請根據自己所使用的作業系統來決定。像 windows 2000 professional 版本沒有,但是據說(因為我沒用過) windows XP 的版本是有的。會不會影響我也無從判斷起。

Debug by mysql program假如可以連線,我會考慮使用 mysql 這個指令看看是不是因為連線位置被拒絕(這就需要改變 MySQL 設定之類的,這又必須根據你所使用的應用程式來更改)。然後可以看錯誤訊息是什麼,把錯誤訊息丟進 google 去看看有沒有可以用的訊息。