mtinstall - 安裝 Movable Type
這份文件描述著如何把 Movable Type 系統安裝到妳的機器上的程序。
Movable Type 需要下列環境纔能執行:
妳可以從 Movable Type 的網站下載這個套件: http://www.movabletype.org/download.shtml 。
可以下載的套件又分成兩個版本:其中一個內附所有妳執行這個系統所需的外部函式庫,而另一個則祇有 Movable Type 系統本身。如果妳知道妳的主機提供者已經先把所有會用到的模組都裝好了,那麼妳就祇需要『 lite 』的版本;另一方面,『 full 』版本安裝起來也會比較輕鬆愉快,因為所有的外部函式庫都附上了,所以妳完全不需要另外安裝。
下載之後,妳會看到 .tar.gz 格式的檔案;這是把 Movable Type 壓縮並打包起來的套件。解開這個壓縮檔。
(需要關於解壓縮的協助嗎?)。
mt-add-notify.cgi 、 mt-check.cgi 、 mt-comments.cgi 、 mt-load.cgi 、 mt-send-entry.cgi 、 mt-tb.cgi 、 mt-search.cgi 、 mt.cgi 、 mt-xmlrpc.cgi 和 mt-view.cgi 這些檔案通通都是 Perl 腳本;在這些檔案的第一列都會包含著妳的網頁伺服器上的 Perl 路徑;通常也就是 #!/usr/bin/perl 。如果妳的網頁伺服器上把 Perl 放在其他地方,像是 /usr/local/bin/perl 的話,妳就得修改這裡。如果妳得修改這個設定的話,請千萬小心不要把每個檔案第一列最後的 -w
給刪掉了;這個設定會開啟 Perl 的警告功能,保持開啟顯然會相當重要。
要得知妳的網頁伺服器上的 Perl 路徑,可能得要看看妳的主機服務的維護頁面。不然如果妳有 shell (命令列)帳號,而妳又習慣這種介面的話,妳也可以登入這個帳號,然後輸入:
$ whereis perl
這應該會告訴妳在妳的系統上 Perl 到底在哪裡。
請注意: mt-db-pass.cgi 雖然有著這樣的副檔名,但完全不是一般的 Perl 腳本;所以裡面不應該包含 Perl 的路徑。
如果妳把 Movable Type 安裝到 cgi-bin 目錄的話,請注意妳得把妳的靜態檔案 -- images 、 docs 和 styles.css -- 上傳到 cgi-bin 之外的目錄裡纔行。靜態檔案不能夠被留在 cgi-bin 裡面,這是因為網頁伺服器會試著去執行他們,並且透過網頁介面把他們畫成根本不能用的樣子。
解決的方法是在妳的網頁可存取區內新建一個叫做 mt-static 的目錄,然後把 images 、 docs 和 styles.css 上傳到那個目錄裡。請留意 mt-static 所對應到的網址,因為稍後妳在 mt.cfg 檔案裡組態系統的時候就會用到。
訣竅:如果妳在 cgiwrap 或 suexec 底下執行 Movable Type 的話,就可以把他裝得更加安全。請見使用 cgiwrap 或 suexec 的訣竅來看看如果妳有其中任一種工具時還可以做些甚麼。
這並不需要任何額外建立的目錄。
如果妳打算要使用 Movable Type 的 Berkeley DB 支援的話(預設值):
選擇你要在網頁伺服器上的哪裡存放妳的 Movable Type 資料庫檔案。
如果引不是安裝到 cgi-bin 目錄的話,我們建議妳在網頁可存取的目錄外,另外建立一個安全的資料庫單獨存放目錄。這樣可以防止網頁瀏覽器窺視到任何資料庫裡的內容。舉例來說,許多主機帳號都會有個網頁無法存取的 home 目錄,以及一個被當作網頁可存取區域 root 的 public_html 目錄。把資料庫存放在網頁可存取區域之外能夠防止網頁瀏覽器窺視到資料庫裡的內容,放進 cgi-bin 目錄裡也會有一樣的效果。
如果妳打算要用 Movable Type 的 SQLite 資料庫支援的話:
SQLite 會把妳的資料存放在單一一個資料庫檔案裡。然而它將需要能夠自己建立出那個檔案。也就是說,妳還是得按照前述關於 Berkeley DB 支援部分的指導原則,來指定 SQLite 資料庫目錄的位置。
舉例來說,如果妳把 Movable Type 安裝到 http://www.your-site.com/movabletype/ 的話,妳就應該把 CGIPath 那一列改成
CGIPath http://www.your-site.com/movabletype/
請注意:請確定妳的網址最後面留有一個往前的斜線( /
)!
當妳在用文字編輯器編輯 mt.cfg 的時候,加入這幾列:
ObjectDriver 驅動程式_名稱 Database 資料庫_名稱 DBUser 資料庫_使用者
這裡的 驅動程式_名稱 可以是下列這幾種之一: DBI::mysql 、 DBI::postgres 或 DBI::sqlite ; 資料庫_名稱 則是妳要用來存放資料的 SQL 資料庫名稱,而 資料庫_使用者 則是要用來連接到資料庫的使用者名稱。
如果妳的 SQL 伺服器位於不同的主機上的話,妳也可以用 DBHost 來指定主機名稱:
DBHost 資料庫_主機
如果妳的 SQL 伺服器位於本地端,但是 socket 卻不是在標準的位置上時,妳也可以用 DBSocket 來設定 socket 的路徑:
DBSocket /路徑/指到/mysql.sock
如果妳的 SQL 資料庫伺服器用的不是預設的連接埠的話,妳就得用 DBPort 來設定連接埠:
DBPort 連接埠
請注意:如果妳所使用的是 MySQL 或 PostgreSQL 的話,妳所指定的資料庫一定要已經存在 -- Movable Type 沒辦法自己生出來!
請注意:如果妳所使用的是 SQLite 的話,就不需要提供使用者名稱,而 資料庫_名稱也就是資料庫檔案的名稱。妳可以任意地為這個資料庫命名 -- mtdb 會是個不錯的選擇。請記得要將妳存放這個資料庫檔案的目錄一併包含在資料庫_名稱裡。像是這樣:
Database db/mtdb
當妳在用文字編輯器編輯 mt.cfg 的時候,把這一列
DataSource ./db
修改成
DataSource /完整的/路徑/指到/DB
這裡的 /完整的/路徑/指到/DB 請代換成妳剛剛建立的 db 目錄的完整檔案系統路徑。舉例來說,如果妳把這個目錄建在 /home/melody/db 的話,上面那一列就應該要被改成
DataSource /home/melody/db
妳得在 mt.cfg 檔案裡把 StaticWebPath 的值設定成對應到妳所選擇的靜態檔案( images 、 docs 和 styles.css )擺放目錄的網址。舉例來說,如果妳決定要把靜態檔案放到網頁可存取區域的 root 的話,那妳就應該在 mt.cfg 裡面加入這一列:
StaticWebPath /mt-static/
要啟用由 cgiwrap 和 suexec 所提供的極高等級安全的話,在妳的 mt.cfg 檔案裡加入下列幾列:
DBUmask 0022 HTMLUmask 0022 UploadUmask 0022 DirUmask 0022
基於安全性的考量,妳的 SQL 資料庫密碼不能就祇是單純地放在 mt.cfg 裡,而得放在一個叫 mt-db-pass.cgi 的檔案中。
用純文字編輯器開啟 mt-db-pass.cgi ,並找到這一列:
database_password
請把 database_password 代換成要用來連接到妳的 SQL 資料庫所需的密碼。
然後儲存 mt-db-pass.cgi 檔案,並且離開文字編輯器。
把所有在 Movable Type 套件裡的檔案都上傳到妳的網頁伺服器上。
如果妳把他安裝到 cgi-bin 的話:妳應該把 images 、 docs 和 styles.css 上傳到你要用來放置靜態檔案的地方。
請注意:進行這個步驟時請千萬小心,有些檔案可以用 ASCII 模式上傳,但是其他的檔案都應該要用 binary 模式纔行。如果妳弄錯了,這些腳本將完全不能用。
用 ASCII 模式上傳這些檔案/目錄: docs 、 lib 、 extlib 、 mt.cfg 、 styles.css 、 tmpl 、 schemas 、 search_templates 、 plugins 和所有的 CGI 腳本( mt.cgi 等等)。
用 Binary 模式上傳這些檔案/目錄: images 。
權限設定成 755 表示系統上所有的使用者都具有讀取
和執行
的權限;但是祇有持有人纔擁有寫入
的權限。
如果妳的 FTP 用戶端軟體使用圖形來顯示權限設定的話,畫面看起來可能會像這樣:
如果妳是在 Unix shell 底下設定權限的話,祇需要使用這個命令
$ chmod 755 mt*.cgi
開啟你選擇要用來存放 Movable Type 資料庫的路徑。
建立一個叫做 db 的新目錄。
如果妳不是在 cgiwrap 或 suexec 底下執行 Movable Type 的話,把這個 db 目錄的權限設定 (CHMOD) 成 777 。
把權限設定成 777 意味著系統上所有的使用者都具有讀取
、寫入
和執行
的權限。
如果妳的 FTP 用戶端軟體使用圖形來顯示權限設定的話,畫面看起來可能會像這樣:
如果妳是透過 Unix shell 來設定權限的話,就祇需要用到這個指令
$ chmod 777 db
如果妳不是在 cgiwrap 或 suexec 底下執行 Movable Type 的話,請把妳剛剛建立的目錄權限設定成 777 (這個動作的意義請參照前述的段落)。
Movable Type 除了本身的程式碼以外還需要另外一些標準的 Perl 模組纔能夠運作。如果妳下載的是『 full 』版本的 Movable Type 套件的話,裡面幾乎附上了所有所需的模組,祇剩下 DB_File 、 DBD::mysql 和 Image::Magick ( Movable Type 套件裡之所以沒辦法附上這些模組,是因為他們都還需要再編譯過纔能用)。要判斷妳的伺服器上是否已經安裝過這些模組 -- 而且如果沒有的話就加以安裝 -- 的話,請遵照下列的步驟。
為了要讓多種不同的選用功能發揮功效, Movable Type 需要一些選用的 Perl 模組。這些模組會被列在步驟 1 (請見後)中檢查選用模組
標題之後的部分;如果妳的網頁伺服器沒有這些選用模組的話,這一段也會解釋相關的 Movable Type 功能跟所用到的模組。如果妳決定要使用這些功能的話,妳也得安裝這些模組;不過如果妳並不想要用這些功能的話,就可以不要理會這些模組。
開啟妳的網頁瀏覽器,並且指到妳的站台的 mt-check.cgi 網址去。舉例來說,如果妳的站台位於 http://www.your-site.com/ ,而妳把 Movable Type 的檔案上傳到 /mt 目錄裡,所以妳就該輸入 http://www.your-site.com/mt/mt-check.cgi 。
mt-check.cgi 是用來檢查所需的模組是否已經安裝在妳的伺服器上用的 Perl 腳本。如果妳執行這個腳本後得到的回應是 500 Internal Server Error ,請先檢查妳是否已經有把權限設定成 755 (這個權限設定的意義請參照之前的段落),並且把檔案以 ASCII 模式上傳了。如果這個建議仍然沒有幫助的話,請參考障礙排除小節。
如果腳本成功地執行了,就會顯示檢查所需的模組
之類的訊息。如果腳本回報說妳的伺服器已經安裝了所有所需的模組了,那麼妳可以跳過以下的部分,直接看啟動系統的區段。
如果妳需要安裝任何所需的模組,或者妳想要用某些選用的模組,請現在就參照下列的指引把他們裝起來:
開啟妳的網頁瀏覽器,並且指到妳的站台的 mt-load.cgi 網址去。舉例來說,如果妳的站台位於 http://www.your-site.com/ ,而妳把 Movable Type 的檔案上傳到 /mt 目錄裡,所以妳就該輸入 http://www.your-site.com/mt/mt-load.cgi 。
mt-load.cgi 這個 Perl 腳本會把一些初始化資料載入 Movable Type 資料庫裡,包括:作者、網誌以及一些基本模版。如果妳執行這個腳本後得到的回應是 500 Internal Server Error ,請先檢查妳是否已經有把權限設定成 755 (這個權限設定的意義請參照之前的段落),並且把檔案以 ASCII 模式上傳了。如果這個建議仍然沒有幫助的話,請參考障礙排除小節。
如果成功了, mt-load.cgi 就會傳回成功的訊息;否則它就會傳會說有錯誤發生了;請參考障礙排除來修正這些錯誤。
非常重要的安全性注意事項:
一旦妳成功地執行 mt-load.cgi 後,妳應當馬上從妳安裝 Movable Type 的目錄裡移除 mt-load.cgi 。沒有成功地移除 mt-load.cgi 將可能會讓別人在妳的 Movable Type 系統裡建立另一個新的網誌,同時還有可能因此而能夠存取妳的資料。沒有刪除 mt-load.cgi 將導致最主要的安全性顧慮。所以妳應該現在就把他刪掉。
現在妳已經把系統安裝起來了,可以開始用了。
妳應該會看到 Movable Type 登入提示畫面;如果沒有的話,請檢查妳的權限設定,並且確定妳所有的 CGI 腳本都以 ASCII 模式上傳了。如果這些都還沒有幫助的話,請參考障礙排除小節。
Melody
跟密碼 Nelson
登入。
編輯妳的個人資料
,然後在那裡變更作者名字及密碼。
我的網誌
的網誌已經在系統裡了;這份網誌可以幫助妳著手開始設定 Movable Type 裡的第一份網誌。我的網誌
還會附帶一些預先做好的模版;妳當然可以修改這些模版、刪除他們,或者做任何妳想做的處置。但是這至少是個好的開始,可以幫助妳培養出對模版標籤及架構的熟悉感。
要依照妳的需求來組態網誌,請先按下現有的網誌
中,連到我的網誌
的鏈結,然後再按下網誌組態
的鏈結。把網誌的名稱改成任何妳想要用的名稱,並且輸入敘述。
然後填入網址資訊及路徑(本機站台路徑
、站台網址
、本機彙整路徑
及彙整網址
)。本機站台路徑
和站台網址
預先會填上預設值,好讓妳知道他們看起來應該會像甚麼樣子;當妳在設定本機站台路徑
和本機彙整路徑
的時候,最好使用絕對路徑(也就是以 /
開頭的路徑),而不要使用相對路徑。請注意這四個欄位都一定要填寫。妳應該已經為妳的網誌建立了一些目錄了(也就是前述的建立妳的網誌目錄的部分)。以完整路徑來填寫這些目錄的本地(站台及彙整)路徑。然後再填入適當的網址來對應到這些目錄。
編輯任何妳想更動的組態設定;完成後再按下儲存
。
妳祇需要安裝還沒被安裝在妳的系統上的模組。妳可以執行 mt-check.cgi (檢查 Perl 模組)來看看妳還需要哪些模組。
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/cpan/cpan-HTML-Template.tar.gz
壓縮檔裡的其他檔案可以忽略不理。
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/downloads/Image/Size.pm
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/cpan/cpan-File-Spec.tar.gz
如果妳是在 Win32 機器上安裝 Movable Type 而妳又有系統管理權限的話,妳可以執行 Perl
Package Manager (PPM) 來安裝 DB_File 。從開始選單裡選擇執行...
,然後輸入ppm
並執行。當妳在 PPM 裡的時候,就會看到一個提示符號( ppm>
),這個時候妳應該輸入 install DB_File
:
ppm> install DB_File
如果妳是在 Linux/Unix 機器上安裝 Movable Type 的話,妳應該請妳的伺服器系統管理者來為妳安裝 DB_File 。如果妳就是系統管理者,那麼妳首先得安裝 Berkeley DB 函式庫(妳可以從 http://www.sleepycat.com/ 下載),然後安裝 DB_File Perl 模組(妳可以從 http://search.cpan.org/ 下載)。
如果妳的伺服器上沒有所需的 DBD 模組的話,首先妳該考慮使用 Movable Type 的 Berkeley DB 支援部分(也就是預設值)。
否則妳就得聯繫妳的主機提供者,並請她們安裝 DBI 模組以及任何前述提及需要用來連結到妳的資料庫的模組。請注意除了要有這些模組外,妳的帳號還得要能存取 MySQL 資料庫,這樣纔能夠用 Movable Type 的 SQL 支援部分。
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/cpan/cpan-CGI.tar.gz
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/cpan/cpan-LWP.tar.gz http://www.movabletype.org/cpan/cpan-URI.tar.gz
extlib/LWP.pm extlib/LWP/ extlib/HTTP/ extlib/Net/ extlib/WWW/ extlib/URI.pm extlib/URI/
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/cpan/cpan-SOAP-Lite.tar.gz
extlib/SOAP/ extlib/XML/ extlib/XMLRPC/
如果某個名叫 extlib 的目錄不存在的話,就建一個出來,然後開啟那個目錄。
http://www.movabletype.org/cpan/cpan-File-Temp.tar.gz
安裝 Image::Magick 需要編譯 ImageMagick 函式庫,並且安裝可以跟此函式庫交談的 Perl 模組。如果妳想要在妳的伺服器上安裝這個模組,妳需要請妳的系統管理者來幫妳安裝。請注意如果妳沒有 Image::Magick 的話, Movable Type 仍舊可以運作良好 -- 安裝 Image::Magick 祇是選擇性的步驟,祇有當妳想要為上傳了的檔案建立縮圖時纔用得到。
警告:已經有回報指出在 f2s 帳號上執行 Movable Type 的問題了。這個問題跟磁碟空間有關;更精確地說,如果妳的 f2s 帳號可用磁碟空間不多的話,妳執行 Movable Type 的時候就應該要很小心,因為當資料庫更新的時候如果磁碟空間用完了,就會損毀妳的資料。這個錯誤幾乎總是可以修的,但它目前仍就是令人煩惱的。請注意這個問題並非一定限於 Movable Type 或者 f2s 纔會發生;任何程式當更新檔案的時候用完磁碟空間時,總是會發生這樣的問題。
如果妳不確定伺服器上的 Perl 版本為何,妳可以用這三個方法之一來找出答案:
$ perl -v
這個指令會印出妳的網頁伺服器上的 Perl 版本。
Movable Type 套件跟幾乎所有其他必須及選用 Perl 模組的套件都會以 .tar.gz 格式來儲存 -- 他們是以 Gzip 壓縮過的 TAR 檔案。如果妳在 Unix 上,妳可以用 gunzip 和 tar 來解開這些壓縮檔。例如:
$ gunzip file.tar.gz $ tar -xvf file.tar
如果妳在 Macintosh 上, Stuffit Expander 會解開這些壓縮檔。如果妳在 Windows 上, PKZip 或 Winzip (用傳統介面)會做這件事。
請注意:如果妳解開 Movable Type 套件後,妳發現居然變成一個不具任何目錄結構的資料夾 -- 也就是所有的檔案都被解到同一個資料夾裡,而不是被分到原有的各個子目錄中 -- 的話,妳將無法安裝 Movable Type ,這個問題常常在 Winzip 的精靈介面發生;在這個情況下,請確定你用了 Winzip 的傳統介面,如前面所提到的一般。
cgiwrap 和 suexec 都是網頁伺服器上的特殊工具,讓妳的 CGI 腳本可以以『妳』的身份,而不是以網頁伺服器的身份執行。這樣可以簡化 Movable Type 的安裝,因為妳無須再去處理網誌或 db 目錄的權限了(不過妳可能還是會想要設定 CGI 腳本自己的權限);這樣也會更安全,因為妳的網誌目錄祇有妳纔能夠寫入。
妳也許會想要跟妳的主機提供者確認是不是在伺服器上已經裝了 cgiwrap 或 suexec 可用。 雖然 Movable Type 可以自己去猜測是不是有支援了。當妳在執行 mt-check.cgi 時,在回報伺服器上 Perl 版本那一列後面,找找看有一列寫著
(可能) 在 cgiwrap 或 suexec 底下執行
這就表示妳的伺服器很有可能已經裝了 cgiwrap 或 suexec 了。
當妳要在 Win32 伺服器上組態 Movable Type 時,妳應該在腦海裡記住下列訣竅:
DataSource d:\完整的\路徑\指到\db
如果妳不是在 cgi-bin 目錄以外的地方執行 Movable Type 的話,妳也許會想要在妳安裝 MT 的目錄裡加入一個 .htaccess 檔案,來保護妳的 mt.cfg :
<Files mt.cfg> <Limit GET> deny from all </Limit> </Files>