$ sudo apt-get install python-dev postgresql libpq-dev python-pip python-virtualenv git-core openjdk-7-jdk
新增一個虛擬環境 (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
Note
欲離開虛擬環境,可使用 deactivate 指令。若需返回,只要再執行 . /usr/lib/ckan/default/bin/activate 即可。
自 github ckeckout source (這邊以 2.4.1 為例)並安裝:
(pyenv) $ pip install -e 'git+https://github.com/okfn/[email protected]#egg=ckan'
Note
以下本教學均以 (pyenv) 表示需在虛擬環境下執行的指令
安裝所需 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 設定檔之目錄:
$ sudo mkdir -p /etc/ckan/default $ sudo chown -R `whoami` /etc/ckan/
透過 paster 新增範例設定檔:
Important
執行任何 paster 指令時,請確認是在虛擬環境下
(pyenv) $ paster make-config ckan /etc/ckan/default/development.ini
修改前面新增的 development.ini,搜尋下面字串,並將帳號密碼與 db 名稱依照 4. 所新增的 db 設定:
sqlalchemy.url = postgresql://ckan_default:pass@localhost/ckan_default
Note
第一個 ckan_default 是使用者名稱,pass 請填寫 db 密碼,最後的 ckan_default 填入 db 名稱)
下載並解壓縮 solr:
Note
因為 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 檔案複製至 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>
Note
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
Note
網址中的 "ckan" 請代換成實際的 solr core 名稱
透過 paster 初始化 CKAN 資料庫:
(pyenv) $ paster db init -c /etc/ckan/default/development.ini
如果一切正常,則會看到此訊息:Initialising DB: SUCCESS
$ ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini
透過 paster 新增 CKAN 系統管理者:
(pyenv) $ paster sysadmin add admin -c /etc/ckan/default/development.iniNote
admin 請代換為您需要的使用者名稱,並依照程式提示設定密碼
透過 paster serve 新安裝的 CKAN 網站:
(pyenv) $ paster serve /etc/ckan/default/development.ini
打開瀏覽器,前往 http://127.0.0.1:5000/ ,至此 CKAN 安裝完成