如何取得程式碼並架設

歡迎選用 Pixmicat! 貼圖版!Pixmicat! 的原始碼遵照 The Clarified Artistic License 條款發布,屬於自由軟體。您可以遵照此條款的內容自由使用、散播、修改或製成衍生著作。以下為您介紹如何取得最新版程式碼並進行上傳及設定、使用。本條目假定您會基本的程式工具使用 (壓縮/解壓程式、瀏覽器、FTP 程式 [包括權限設定]、文字編輯器)。

1. 檢查伺服器是否支援

要架設 Pixmicat! 貼圖版,您必須有一個支援 PHP: Hypertext Preprocessor1 的網頁空間。此空間至少需滿足幾點要求:

  • PHP 5.2.0 以上
  • GD 模組 2.0.28 以上

如果您的空間還可以滿足以下幾點,是更好不過:

  • MySQL / PostgreSQL / SQLite 資料庫支援
  • eAccelerator, XCache, APC 等 PHP 快取加速套件

如果您不清楚伺服器的支援與否,可嘗試使用公用程式 checkenv.php 得知伺服器支援性,以下是範例的運行結果:

Server Infomation:

    PHP: 5.2.3
        - upload_max_filesize: 2M
        - post_max_size: 8M
        - disable_functions: exec
    HTTPd: lighttpd/1.4.17
    OS: Linux 2.6.15-1.2054_FC5 #1 Tue Mar 14 15:48:33 EST 2006  

PIO Check:

    SQLite Support: 1 
    MySQL Support: 1 
    PDO SQLite3 Support: 1 
    PostgreSQL Support: 

Thumbnail Generator Check:

    GD Support: bundled (2.0.34 compatible) 
    Imagick Support: ImageMagick 6.3.3 04/21/07 Q16 http://www.imagemagick.org 
    MagickWand Support: ImageMagick 6.2.9 09/27/06 Q16 http://www.imagemagick.org 
    ImageMagick Support: ImageMagick 6.3.0 11/22/06 Q16 http://www.imagemagick.org
        - Location guessed: /usr/bin/convert 
    repng2jpeg Support: 

Check suitable repng2jpeg:

This server has disabled the exec() function. So repng2jpeg can't be used.

一般來說坊間常見的免費個人網頁空間或學校配給網路空間多半因為所謂的安全因素而不支援 PHP。而支援的免費空間又多有廣告或主機不穩的情形發生,建議您可以申請虛擬主機或使用自架主機以取得更穩定的環境。如果您實在不清楚自己的空間有沒有支援 PHP,可尋找空間商的 FAQ 答客問,或發信詢問是否支援。

最簡單的方法是製作一個簡單的檔案,命名為 test.php,內容如下:

<?php
phpinfo();
?>

然後上傳到網路空間,使用瀏覽器檢視 test.php。如果內容完全沒變直接顯示檔案內容,那多半是不支援 PHP。

2. 取得程式原始碼並上傳

如果確定伺服器支援 PHP,接著便是取得程式原始碼。目前官方的代表性網站網址為 http://pixmicat.openfoundry.org/,您可以在其下的 檔案下載 區找到所有釋出的壓縮包,並附有 MD5 檢查碼功能以驗證檔案真偽。或您也可以到 Pixmicat! 於 OSSF 下的專案頁面 http://of.openfoundry.org/projects/show/492 下的下載區和 Google Code 專案頁面 http://pixmicat.googlecode.com/ 的下載區來取得壓縮包。

p01.png

目前可取得的版本有 PIO 版 和 Legacy (Log, MySQL) 版,前者為主流版本,支援性廣泛,可支援 Log/MySQL/SQLite/PostgreSQL 等,以函式庫包裝方式得到支援,功能強大;後者現在已停止維護,功能單純。如果您打不定主意那就使用主流的 PIO 版。下載壓縮檔後使用解壓縮工具 (本例為自由軟體 7-Zip) 打開並解壓到一個臨時的資料夾 (例如 C:\pixmicat) 以進行設定和上傳的準備。

p02.png

3. 修改環境設定檔內容

在修改之前,提醒一下請您不要使用微軟的記事本來儲存修改過後的 config.php 檔案,因為記事本並沒有另存新檔不存入 Unicode BOM 檔頭標記的功能。此標記是用來表示檔案編碼為 UTF-8 之用,但不是一定得用,當檔案開頭為 EF BB BF 時就表示此檔案是以 UTF-8 編碼,而 PHP 4/5 程式原始碼如果含有 BOM 標記會直接輸出,造成網頁的輸出結果有問題,嚴重的話還會影響 Cookie 的寫入或程式的執行。請您改用 EmEditor, UltraEdit, Notepad++ 等程式作編輯,在另存新檔時設定不要加入 BOM 標記即可。(範例 EmEditor Free 版)

medium.jpg

為程式作調整,請使用文字編輯器打開 config.php,參照每個項目右方的註解說明和更為詳細的 修改環境設定檔說明 來進行修改。如果使用 PIO 版,其中的「FileIO設定」和「PIO資料來源設定」便十分重要,FileIO 可讓您使用其他方法儲存圖片 (遠端機器、FTP、ImageShack 網站等)、PIO 可讓您以不同的資料儲存後端儲存文章。如果先前的公用程式 checkenv.php 顯示能支援特定項目,請考慮使用。如果 SQLite 支援的話請盡量使用,它不需要伺服器便可以檔案直接管理資料庫結構,十分方便。PDO SQLite3 則是給 PHP 5.1.0 以上的使用者有需要更新的 SQLite3 支援而用。MySQL 和 PostgreSQL 需要一台連接用的伺服器位置和帳號密碼,如果您不確定自己是否擁有 (有的空間會附送 MySQL 位置和帳號密碼,請查查 FAQ 或 E-mail) 則不要使用。假如以上通通沒有支援,再考慮 Log。Log 因為作業系統和檔案系統有可能會有檔案損毀的風險,請多加注意!雖然程式已經盡量避免這類問題,但難免會有一定的機率會發生。

PIO MySQL 和 PostgreSQL 使用的資料庫 (Database) 必須是已存在的,因為程式沒有權限創建。資料表 (Table) 則可以不存在,系統會自動產生。

請確定管理密碼、「管理員キャップ(Cap)設定」、「封鎖設定」、「附加檔案限制」和「欄位陷阱 (Field Trap)」有看過或改過,管理密碼如果是預設值可是非常危險的,而欄位陷阱為避免廣告 Bot 學習而希望您能修改預設值,差異性越大廣告 Bot 就越難破解,防護效果更好。

4. 將程式碼上傳到空間上

接著請打開您的 FTP 程式,連接到您的空間。如果您的空間不是以 FTP 來管理,而是如網頁上傳等方式的話,請打開瀏覽器登入到管理介面,準備上傳檔案。

首先先在您喜歡的位置新增一個目錄放置 Pixmicat! 貼圖版 (例如 pixmicat),然後對其目錄更改屬性 (權限) 為 777 (dwrxwrxwrx) 以允許程式寫入靜態暫存頁面和文章紀錄檔案、暫存檔等,修改權限的方法依照使用軟體不同而有不同做法,以下以自由軟體 FileZilla 為例,在新目錄按滑鼠右鍵出現的功能表選「檔案屬性」會出現如圖中的屬性設定框。直接在數值化權限輸入 777 按確定即可更改,如果您的帳號有修改權限的話應該會成功。

p03.png

再來進入此目錄,將方才解壓的所有檔案上傳至此目錄 (ChangeLog 和 LICENSE 不是程式運作必須檔案,可不必上傳)。完成後的結構如下圖:

p04.png

暫時告一段落,請不要關閉 FTP 軟體,我們要進行初始化的動作。

5. 初始化程式環境

請打開瀏覽器,鍵入 default.php 所在的網址並瀏覽,這是進行程式初始化的作業程序,初始化的項目包括文章儲存來源初始化、建構圖檔儲存目錄等,請一定要作一次。假如權限沒有正確設定的話,初始化會無法成功並出現錯誤訊息。

p05.png

如果權限有正確設定,完成後網頁自動跳轉到預設主頁畫面。

p06.png

記得將 default.php 刪除,初始化就正式完成了。

Congratulations! 全部的作業完成了。架設固然簡單,後續的版面管理、程式版本更新又是值得學習的部分。還有許多沒有介紹的功能,請參考其他條目吧。


Appendix A. 使用 repng2jpeg 程式

經過上面的安裝步驟版面固然是可以用了,不過發現文章的預覽圖都無法生成,系統資訊也指出 GD 功能失常,使用公用程式 checkenv.php 檢查才發現預設使用的 GD 函式庫伺服器竟然沒有安裝,該怎麼辦呢?如果你看到「Thumbnail Generator Check」項目有其他可用的方式,那就參考修改環境設定檔說明來修改。如果發現都沒有,檢查看看最後一線曙光「Check suitable repng2jpeg」,如果他給你的建議不是「So repng2jpeg can't be used.」而是諸如「You can use repng2jpeg (XXX)」,這表示我們還有機會。日本的菅処網站編譯了一組不需安裝的 repng2jpeg 執行檔,只要伺服器還有執行的權限,只需上傳適當的二進位檔案並修改權限,就可以利用它來生成預覽圖。

Check suitable repng2jpeg:

- libjpeg -> /usr/lib/libjpeg.so.62
- libpng -> Not Found
- libz -> /usr/lib/libz.so.1
- libm -> /lib/libm.so.6
- libc -> /lib/libc.so.6
- ldlinux -> /lib/ld-linux.so.2
You can use repng2jpeg (i386_linux_standard).

首先按照 公用程式 條目下方註腳部分提供的菅処網站位置連到該網站,你應該可以找到 repng2jpeg 1.0.4 的下載連結,選一個下載 (zip for Windows, tar.gz for *nix)。開啟之後可以看到裡面有許多分類資料夾,個別代表不同作業系統所使用的執行檔。參考 checkenv.php 偵測出來的結果 (上面範例為 i386_linux_standard),找到對應的資料夾,解壓出裡面的 repng2jpeg 執行檔。

再來請將此檔案上傳到 Pixmicat! 程式的根目錄下,與 pixmicat.php 放在同一目錄,如果有必要的話要將 FTP 傳輸模式改成 BINARY 二進位模式以防上傳後的執行檔不能執行 (大多數的 FTP 程式會自動判斷,但不是每個都這麼聰明,建議還是先調為上。如何設定請參考各家 FTP 程式說明)。上傳完畢後還需要賦予這個檔案執行的權限,一般來說伺服器的設定是 755,所以將 repng2jpeg 檔案更改權限為 755 即可。但是是依伺服器的不同,會要求設定特定的權限比如 700, 701 等才能正常執行,這方面還請閱讀空間商的 FAQ 或詢問客服 (一般來說 CGI 執行檔設什麼權限,repng2jpeg 就跟著設什麼權限)。

設定完成之後可以再使用 checkenv.php 檢查是否能正常運作 (記得 checkenv.php 也要放在 Pixmicat! 根目錄才能抓到 repng2jpeg),如果「repng2jpeg Support:」後方出現「repng2jpeg version XXX」就表示成功了,沒有的話那表示上傳可能不正確 (使用二進位模式再傳一遍看看?)、權限設定可能有誤 (看一下空間FAQ?) 或者伺服器不允許外部程式執行 (要是如此,請節哀,repng2jpeg不適合這個空間)。

repng2jpeg Support: repng2jpeg version 1.0.4

我們還需要最後的設定才能使用 repng2jpeg,請打開 config.php,將 USE_THUMB 的設定值改成 'repng2jpeg' (記得要有引號,PHP 規定凡是文字要有引號括住)。

define("USE_THUMB", 'repng2jpeg'); // 使用預覽圖機能 (使用:1 不使用:0)

存檔後 (記得不要把BOM字元存進去了) 上傳至伺服器後,到「系統資訊」看一下是不是正常了,發一篇文章試看看吧!

伺服器支援情報
repng2jpeg Wrapper : repng2jpeg version 1.0.4 功能正常

Appendix B. 安裝擴充模組

Pixmicat! 可以藉由寫好的擴充模組 (Modules) 來擴充功能,較具代表性的如 RSS 頻道訂閱支援 (mod_rss)、討論串列表 (mod_threadlist)、相簿模式 (mod_catalog) 等。根目錄有一個 module 目錄即是放置模組檔案的地方,只要將 mod_XXXX.php 放置到 module 目錄下,再修改 config.php 加入一條 $ModuleList[] = 'mod_XXXX'; 即可,有的模組安裝比較複雜 (需要 jQuery、需要其他函式庫、需要申請其他服務等),會提供說明檔 howto.txt 供參考。擴充模組一覽 可以找到更多關於模組的介紹。

需要 jQuery 函式庫

有的模組為了方便撰寫上的便利,使用了 jQuery2進行輔助開發,所以必須要先引入此函式庫才能讓這些模組運作正常。因為函式庫的特性,只需要引入一次就可以讓其他多個模組使用,因此如果遇到需要引入的情況,推薦直接修改樣版檔案設定引入,未來就不必擔心是否因為需要使用而沒有引用到的情況。

Google 在 2008/05/27 公開提供知名 JavaScript AJAX Libraries 的存放服務3,所以不需要再下載 jquery.js 放在自己的主機上,只需要直接使用 Google 的網址4即可。

打開 inc_pixmicat.tpl 樣版檔案,搜尋以下程式碼:

<link rel="stylesheet" type="text/css" href="mainstyle.css" />

簡單加上一句語法即可:

<link rel="stylesheet" type="text/css" href="mainstyle.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

存檔後上傳覆蓋原檔案即可,這樣日後遇到需要 jQuery 的套件就不必煩惱。

Appendix C. 自定版面

Pixmicat! 有兩個檔案可以修改 (mainstyle.css, inc_pixmicat.tpl),前者負責版面外觀 CSS,後者負責版面排版 HTML。

CSS 樣式

使用文字編輯器打開 mainstyle.css,裡面有許多預設的樣式,更有許多註解,可以參考修改。如果不會 CSS 語法請去坊間找尋相關書籍或觀看教學。

HTML 排版

inc_pixmicat.tpl 是預設的雙葉風格版面樣板,除非你懂得 HTML 否則建議不要修改,有可能會改動到版面無法正常輸出的情形。
取而代之的 config.php 提供更換使用樣版的選項 (TEMPLATE_FILE),可使用內附的其他樣板。
如果真的想創造一個與眾不同的樣板,請分清楚樣版的結構再進行切割修改。謹記結構是 XHTML 1.1 的規範,許多標籤的用法可能跟 HTML 4.01 有所不同。

討論

有關於程式運行錯誤的問題請不要在此發問,因為可能會被忽略。請移駕到 Pixmicat! 官方網站的開發討論。
那到底要討論什麼?本教學未盡清楚之事,如免費空間、虛擬主機的選擇或推薦,或教學需修正處。

新增一則回應
登入為 Wikidot 使用者
(將不會發佈)
- +
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.