CKAN 2.7.2 安裝與佈署
這邊有分Development跟Production,前兩步的教學算是Development
如果沒有特別改ini等相關設定,有些設定跟資料是會共用的,就必須要改權限
如果沒有特別改ini等相關設定,有些設定跟資料是會共用的,就必須要改權限
Development因為是跑一個微型Server,非Apache Nginx等
前者權限通常為linux的使用者名稱
後者則看Apache Server會動到哪,Apache在linux的名稱則是 www-data
如果遇到檔案或目錄權限問題,變更擁有者為上述兩者通常就能解決
以Ubuntu 14.04 LTS, Source code install CKAN 2.7.2為例 (如果從 2.6 以前版本升級上來,要安裝 redis)
步驟如下
步驟如下
-
- 第七步的時候安裝
- 佈署到正式Server : 尚未完成第十步
- 記得要修改production.ini的port, 把原本development的5000改成8080
完成第九步後應該就沒問題了
根據文件,瀏覽 http://127.0.0.1:8080/ 就會有CKAN首頁此時上傳檔案後要 Upload to datastore
會發現有 Cannot connect to datapush server的訊息
請繼續往下設定 -
sudo /usr/lib/ckan/datapusher/bin/pip install -r requirements.txt
Downloading cryptography-2.1.4.tar.gz (441kB): 441kB downloaded
Running setup.py(path:/home/yanting/ckan/lib/datapusher/build/cryptography/setup.py) egg_info for package cryptography
error in cryptography setup command: Invalid environment marker: python_version < '3’
Complete output from command python setup.py egg_info:
error in cryptography setup command: Invalid environment marker: python_version < ‘3’原因: Pip 或 Setuptool 版本過舊
解法: 改用系統的pip下pip install -U pip setuptools sudo pip install -r requirements.txt
(2). 執行這行前sudo cp deployment/datapusher.conf /etc/apache2/sites-available/datapusher.conf
設定Apache config讓CKAN可以存取 Data Pusher Server
否則會遇到403 Forbiddon
開啟local存取權限:vim deployment/datapusher.conf
新增下列資訊<VirtualHost 0.0.0.0:8800> ... 省略 <Directory /> Require local granted </Directory> </VirtualHost>
再執行原本要執行的sudo cp deployment/datapusher.conf /etc/apache2/sites-available/datapusher.conf
(3). 繼續完成後面的步驟,這行不用下sudo sh -c 'echo "NameVirtualHost *:8800" >> /etc/apache2/ports.conf'
(4). 全部完成後sudo service apache2 restart sudo service nginx restart
Note: 任何apache, nginx或CKAN xxx.ini上的更動,要記得重啟或重新載入(Reload)測試連線127.0.0.1:8800 (Datapusher)(5). 到 127.0.0.1:8800,顯示500 internal server error
看log發現是Permission Deny的問題[Wed Dec 06 17:30:40.050157 2017] [:error] [pid 32138:tid 139969180825344] [remote 127.0.0.1:50709] IOError: [Errno 13] Permission denied: ‘/tmp/ckan_service.log’當初用Dev跑是用User的權限
導致Apache2用 www-data的user存取就會有問題,所以變更權限
解法:sudo chown www-data /tmp/ckan_service.log
一樣重啟就可以連線 127.0.0.1:8800(6). filestore 權限要變更,否則無法上傳檔案sudo chown -R www-data /var/lib/ckan/default
(7). 變更儲存job db的權限,否則無法啟動 upload to datastore的功能sudo chown www-data /tmp/job_store.db
完成上述步驟1~5,我們可透過 http://127.0.0.1:5000/api/util/status 查詢網站狀態如下:
{
"ckan_version": "2.7.2",
"site_url": "http://127.0.0.1:5000",
"site_description": "",
"site_title": "CKAN",
"error_emails_to": null,
"locale_default": "en",
"extensions": [
"stats",
"text_view",
"image_view",
"recline_view",
"datastore",
"datapusher"
]
}
留言
張貼留言