CKAN 安裝
作業系統環境
- 建議使用 Ubuntu 12.02 LTS or 12.04 LTS x86_64 Server Edition
- 可以透過虛擬機先進行建置 (需注意網路配置)
安裝必須套件
$ sudo apt-get install python-dev postgresql libpq-dev python-pip python-virtualenv git-core solr-jetty openjdk-6-jdk
Virtual environment 設定
新增一個虛擬環境 (virtualenv) 供 CKAN 使用:
$ sudo mkdir -p /usr/lib/ckan/default $ sudo chown `whoami` /usr/lib/ckan/default $ virtualenv --no-site-packages /usr/lib/ckan/default
進入剛才新增的虛擬環境:
$ . /usr/lib/ckan/default/bin/activate
註解 |
---|
欲離開虛擬環境,可使用 deactivate 指令。若需返回,只要再執行$ . /usr/lib/ckan/default/bin/activate 即可。 |
安裝 CKAN
自 github ckeckout source (這邊以 2.4.1 為例)並安裝:
$ (pyenv) $ pip install -e 'git+https://github.com/okfn/[email protected]#egg=ckan'
安裝所需 Python 套件:
$ (pyenv) $ pip install -r /usr/lib/ckan/default/src/ckan/requirements.txt
設定資料庫
新增 CKAN 使用之 PostgreSQL 使用者:
$ sudo -u postgres createuser -S -D -R -P ckan_default
新增 CKAN 使用之資料庫:
$ sudo -u postgres createdb -O ckan_default ckan_default -E utf-8
建立 CKAN 設定檔
新增放置 CKAN 設定檔之目錄:
$ sudo mkdir -p /etc/ckan/default $ sudo chown -R `whoami` /etc/ckan/
透過 paster 新增範例設定檔:
重要 |
---|
執行任何 paster 指令時,請確認是在虛擬環境下 |
(pyenv) $ paster make-config ckan /etc/ckan/default/development.ini
- 修改前面新增的 development.ini,搜尋下面字串,並將帳號密碼與 db 名稱依照前數步驟「設定資料庫」進行設定:
sqlalchemy.url = postgresql://ckan_default:pass@localhost/ckan_default
註解 |
---|
第一個 ckan_default 是使用者名稱,pass 請填寫 db 密碼,最後的 ckan_default 填入 db 名稱 |
- 設定 site_url :
ckan.site_url = http://127.0.0.1:5000
安裝 solr (含中文搜尋支援)
註解 |
---|
本部分參考 How To Install Solr 5.2.1 on Ubuntu 14.04 (DigitalOcean) |
- 下載並解壓縮 solr:
註解 |
---|
因為 CKAN schema 與 Solr 5.2.1 以上版本存在相容性問題,故現階段建議使用 Solr 5.1.0。 |
$ cd ~
$ wget http://archive.apache.org/dist/lucene/solr/5.1.0/solr-5.1.0.tgz
$ tar xzf solr-5.1.0.tgz solr-5.1.0/bin/install_solr_service.sh --strip-components=2
執行 solr 安裝腳本:
$ sudo bash ./install_solr_service.sh solr-5.1.0.tgz
建立供 CKAN 使用之 solr configset:
$ sudo -u solr mkdir -p /var/solr/data/configsets/ckan/conf $ sudo ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /var/solr/data/configsets/ckan/conf/schema.xml $ sudo -u solr cp /opt/solr/server/solr/configsets/basic_configs/conf/solrconfig.xml /var/solr/data/configsets/ckan/conf/. $ sudo -u solr touch /var/solr/data/configsets/ckan/conf/protwords.txt $ sudo -u solr touch /var/solr/data/configsets/ckan/conf/synonyms.txt
下載並將中文斷詞函式庫 mmesg4j 之 jar 檔案 (core, solr) 複製至 solr 目錄 (/opt/solr/server/solr-webapp/webapp/WEB-INF/lib)
調整 CKAN 搜尋索引定義 (使其支援中文搜尋):
修改 schema.xml,將 fieldType name=”text” 區段修改為:<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ASCIIFoldingFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/> <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.ASCIIFoldingFilterFactory"/> </analyzer> </fieldType>
註解 |
---|
schema.xml 位於 /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml |
重新啟動 solr:
$ sudo service solr restart
在瀏覽器輸入以下連結,以建立供 CKAN 使用之 solr core (此處命名為 ckan): http://127.0.0.1:8983/solr/admin/cores?action=CREATE&name=ckan&configSet=ckan
打開瀏覽器,前往 http://127.0.0.1:8983/solr ,若能看到畫面則代表安裝完成
- 修改 /etc/ckan/default/development.ini,指定 solr 連線位址:
solr_url = http://127.0.0.1:8983/solr/ckan
註解 |
---|
網址中的 “ckan” 請代換成實際的 solr core 名稱 |
初始化資料庫
透過 paster 初始化 CKAN 資料庫:
(pyenv) $ paster --plugin=ckan db init -c /etc/ckan/default/development.ini
如果一切正常,則會看到此訊息:Initialising DB: SUCCESS
建立 who.ini link
$ ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini
新增 CKAN 系統管理者
- 透過 paster 新增 CKAN 系統管理者:
(pyenv) $ paster --plugin=ckan sysadmin add jkw -c /etc/ckan/default/development.ini
註解 |
---|
admin 請代換為您需要的使用者名稱,並依照程式提示設定密碼 |
在開發環境下執行
透過 paster serve 新安裝的 CKAN 網站
(pyenv) $ paster serve /etc/ckan/default/development.ini
打開瀏覽器,前往 http://127.0.0.1:5000/ ,至此 CKAN 安裝完成