邱偉嘉
政大圖檔所百年圖書館數位典藏計畫的系統開發維護小組
(2008/1/14)
此文件內容由政大圖檔所百年圖書館數位典藏計畫的系統開發維護小組撰寫,內容包含DSpace所有需具備的環境、安裝程序、後續維護及系統開發建議。
一、管理及開發人員
DSpace網站管理人員需要基礎的linux操作技能,如果你已經具備UNIX-like OS的管理經驗更好。系統開發人員需要具備Java/Jsp/Tomcat/PostgreSQL(or other database)基礎知識,如果你已經具備OOP (Object-oriented programming)、MVC (Model-View-Controller,模型-視圖-控制器模式)、ORM (Object-Relational mapping)的知識更好。
二、DSpace安裝及設定
安裝環境需求
DSpace在UNIX-like OS上有比較好的支援度,也比較穩定,以下將以Step by step的方式說明關於DSpace的安裝及設定。DSpace安裝的環境需求包括:
- UNIX-like OS (CentOS, RHEL, SUSE etc)
- Java 1.4 或者更新的版本(SDK即可不需要J2EE)
- Apache Ant 1.6.2或者更新的版本
- PostgreSQL 7.3 或Oracle 9或者更新的版本
- Jakarta Tomcat 4.x/5.x 或者其他類似的Jsp server像是Jetty或Caucho Resin
CentOS
在UNIX-like OS中,我們有很多的選擇,包CentOS (Community ENTerprise Operating System)、RHEL (Red Hat Enterprise Linux)、SUSE等,其中RHEL是需付費的企業用linux發行版,是受到肯定最穩定的distribution,而CentOS是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放原始碼規定釋出的原始碼所編譯而成。由於出自同樣的原始碼,因此有些要求高度穩定性的伺服器以CentOS替代商業版的Red Hat Enterprise Linux使用 (維基百科, 2007)。兩者的不同,在於CentOS並不包含封閉原始碼軟體,也沒有Red Hat公司的服務,但是CentOS是不需要付費的。通常伺服器的RAID (Redundant Array of Independent Disks,磁碟陣列)都受到RHEL/CentOS的支援,而在我們的例子中支援RAID是必須的,以提高伺服器的安全機制,所以最終我們選擇CentOS作為我們的OS。
CentOS安裝說明
在下面幾個地方可以下載到安裝ISO檔。
到BIOS設定「使用光碟開機(Boot from CD-ROM)」,將光碟放入並且重新啟動電腦,即可進入安裝畫面,按照電腦的指示一步一步完成安裝。需要注意的是如果你也想要使用RAID來安裝你的伺服器,你必須選擇你的伺服器支援RAID的RHEL/CentOS版本,過高或過低都不行,否則可能會有驅動程式無法支援的問題。如果你需要更詳細的說明請參照 http://apt.nc.hcc.edu.tw/web/student_server_centos/student_server_centos.html。
Java安裝
安裝完CentOS之後,一般都已經內建Java SDK,如果你想要升級你的Java到更新的版本,你可以透過CentOS帶的Yum指令來升級,指令如下。
yum update java
關於Yum指令更詳細的說明請參照http://linux.vbird.org/linux_server/0220upgrade.php#yum。
你可以通過Java -version指令來檢查你的Java版本以及是否安裝成功。
Apache Ant
Ant是一套方便Java佈署應用程式的軟體,而DSpace便是採用Ant來佈署,這樣你就不必自己手動安裝佈署DSpace。
Apache Ant安裝及設定
- 你可以在http://ant.apache.org/下載到最新的binary版本。一般我們會將下載回來的檔案解壓縮至/opt。
- 設置環境變數。指令如下
vim /etc/profile
加入以下設定(請注意版本與路徑要以你的設定為主)
ANT_HOME=/opt/apache-ant-1.7.0
JAVA_HOME=/usr/java/jdk1.6.0_02
PATH要加入$ANT_HOME/bin。
- 你可以通過ant -version指令來檢查你的ant版本以及是否安裝成功。
更詳細的Ant安裝及使用說明可以參照http://ant.apache.org/。
PostgreSQL
DSpace支援的資料庫有PostgreSQL及Oracle,而Oracle是需要付費的資料庫,PostgreSQL則不用,所以我們採用PostgreSQL作為DSpace的支援資料庫。
PostgreSQL安裝
CentOS已經內建PostgreSQL。如果你想要升級你的PostgreSQL到更新的版本,你可以透過CentOS帶的Yum指令來升級,指令如下。
yum update postgresql
PostgreSQL設定
安裝完PostgreSQL之後我們還需要做一些基本設定,才能夠讓DSpace使用PostgreSQL。
開啟PostgreSQL的TCP/IP的連線,編輯postgresql.conf通常會放在 (/var/lib/pgsql/data或者/usr/local/pgsql/data) Linux操作如下。
vim postgresql.conf
加入tcpip_socket = true
加入listen_addresses = 'localhost' #限定只能localhost連線
vim pg_hba.conf
加入host dspace dspace 127.0.0.1 255.255.255.255 md5
如果你想要開放所有的對外連線來查看你的資料庫(ex. pgAdmin),則你修改的內容必須更改為
vim postgresql.conf
加入tcpip_socket = true
加入listen_addresses = '*' #限定任何IP皆可連線
vim pg_hba.conf
加入host dspace dspace 127.0.0.1 0.0.0.0 md5
(注意,開放所有對外連線是不安全的,你必須明確的了解你做什麼事情。)
最後重新啟動PostgreSQL。
Tomcat
Java/Jsp有很多的伺服器選擇,其中Tomcat是最多人使用的伺服器,且將來若考慮到與Apache(在linux中穩定性最高的網頁伺服器)結合也有比較好的支援度。所以我們採以Tomcat作為我們的Java/Jsp伺服器。
Tomcat安裝
你可以在http://jakarta.apache.org/下載最新的Tomcat development版本,將它放到/opt底下,用tar解開。
tar zxvf apache-tomcat-deployer-6.0.13.tar.gz
執行後會安裝到/opt/apache-tomcat-6.0.13。一樣我們還要設置環境變數。
vim /etc/profile
加入
CATALINA_HOME=/opt/apache-tomcat-6.0.13
CLASSPATH=$CATALINA_HOME/common/lib/servlet-api.jar
將Java加入PATH路徑
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ANT_HOME/bin
export變數
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME ANT_HOME CATALINA_HOME
設定以utf-8來啟動Tomcat,加入
JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"
編輯[tomcat]/ config/server.xml ([tomcat]是你tomcat的安裝路徑)
vim [tomcat]/ config/server.xml
在下面類似的位置加入URIEncoding="UTF-8"
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" />
執行下面程式碼,來重新啟動Tomcat。
[tomcat]/bin/stratup.sh
DSpace快速安裝
前置作業及設定
- 在CentOS建立DSpace的帳號
useradd -m dspace
- 在http://www.dspace.org/下載最新的DSpace source code(本計劃是使用DSpace 1.41版本),放在/opt,並解壓縮。
gunzip -c dspace-source-1.x.tar.gz | tar -xf -
- 複製PostgreSQL JDBC driver (.jar file)到[DSpace-source]/lib,你可以在/usr/share/java/postgresql-jdbc2.jar找到,或者到PostgreSQL JDBC site下載你支援你PostgreSQL版本的JDBC2。
- JDBC:Java Database Connectivity,Java資料庫連接,請參考Wikipedia http://zh.wikipedia.org/w/index.php?title=JDBC&variant=zh-tw。
- [DSpace-source]:你的DSpace原始安裝檔的位置
- 建立DSpace在PostgreSQL的帳號:
createuser -U postgres -W -d -S -P dspace
- 建立一個名為DSpace的database:
createdb -U dspace -E UNICODE dspace
- 然後輸入你要設定的密碼
- 編輯[DSpace-source]/config/dspace.cfg:
vim [DSpace-source]/config/dspace.cfg
下面是你會用到的欄位
- dspace.dir -- must be set to the [DSpace] (installation) directory.
- dspace.url -- complete URL of this server's DSpace home page.
- dspace.hostname -- fully-qualified domain name of web server.
- dspace.name -- "Proper" name of your server, e.g., "My Digital Library".
- db.password -- the database password you entered in the previous step.
- mail.server -- fully-qualified domain name of your outgoing mail server.
- mail.from.address -- the "From:" address to put on email sent by DSpace.
- feedback.recipient -- mailbox for feedback mail.
- mail.admin -- mailbox for DSpace site administrator.
- alert.recipient -- mailbox for server errors/alerts (not essential but very useful!)
使用Ant來佈署你的DSpace
- 在跟(root)目錄建立一個DSpace目錄
cd /
mkdir dspace
(/dspace這個安裝路徑以下以[DSpace]取代)
- 變更DSpace目錄的擁有者(chown是改變擁有者的指令):
chown dspace dspace
- 編譯並且安裝DSpace:
cd [DSpace-source]
ant fresh_install
- 複製DSpace Web application archives (.war files)到你的Tomcat目錄。
cp [DSpace-source]/build/*.war [tomcat]/webapps
- 建立administrator(管理者)帳號:
[DSpace]/bin/create-administrator
- 重新啟動Tomcat。透過URL檢查你安裝是否成功
http://[伺服器的IP]:8080/dspace (8080 port是tomcat預設連接埠)
如果能夠看到DSpace初始畫面,恭喜你已經安裝成功,若否,請檢查你是否有遺漏的設定,或者聯絡:chiu.wei.jia@gmail.com。
三、進階系統設定
在安裝DSpace之後你可能還會需要一些設定讓你的管理工作更輕鬆,以下介紹幾個簡單的功能。
cron-建立週期性自動執行指令
在linux上我們可以使用crontab指令來編輯我們所需要的例行性工作。以下是我們所建議的設定,你可以依據你的需求來建立屬於你的DSpace例行性任務。使用方法如下:
crontab -e
加入以下設定
# Run the media filter at 02:00 every day
0 2 * * * [DSpace]/bin/filter-media
你可以依照你的需求增加與修改,更多個功能情可以查看http://zh.wikipedia.org/w/index.php?title=JDBC&variant=zh-tw。
開機時自動啟動服務
如果你想要開機就啟動一些功能(ex: Tomcat伺服器),那你可以修改/etc/rc.d/rc.local檔:
vim /etc/rc.d/rc.local
加入以下設定
#啟動tomcat
/opt/apache-tomcat-6.0.13/bin/startup.sh
備份
如果你想要讓DSpace可以有自動備份的機制,你可以寫一個shell檔(.sh file)裡面寫著備份的程式碼,然後再以先前介紹的方法加入周期性執行。Shell程式碼如下:
dt=`date +%Y%m%d`
mkdir /home/backup/dspace/$dt
chmod 755 /home/backup/*
#備份/DSpace
tar -zcvf /home/backup/dspace/$dt/dspace.tar.gz /dspace
#備份source code
tar -zcvf /home/backup/dspace/$dt/dspace-1.4.1-source.tar.gz /opt/dspace-1.4.1-source
#備份DSpace資料庫
pg_dump dspace > /home/backup/dspace/$dt/dspace_sql.backup
四、總結
上面所介紹的安裝及進階功能都可以依照你自己的需求及情況作調整,無需照抄。若有不明白的部分可以連絡我們。
五、參考資料與網站
(more...)
Comments