from-package-2.9.md 7.77 KB
Newer Older
Patipat Jo's avatar
Patipat Jo committed
1
# วิธีการติดตั้ง CKAN 2.9 จาก Package บน Ubuntu 18.04 และ 20.04
Patipat Jo's avatar
Patipat Jo committed
2
3
4
5
6
7

### 1. Update Package ของ Ubuntu:
```sh
sudo apt-get update
```

Patipat Jo's avatar
Patipat Jo committed
8
### 2. ติดตั้งและตั้งค่า PostgreSQL:
Patipat Jo's avatar
Patipat Jo committed
9
10
11
```sh
sudo apt-get install -y postgresql

Patipat Jo's avatar
Patipat Jo committed
12
13
# สร้าง postgres user สำหรับเขียน ckan_default, datastore_default 
# ใส่ ***{password1}***
Patipat Jo's avatar
Patipat Jo committed
14
15
16
17
18
19
20
21
sudo -u postgres createuser -S -D -R -P ckan_default

# สร้างฐานข้อมูล ckan_default
sudo -u postgres createdb -O ckan_default ckan_default -E utf-8

# สร้างฐานข้อมูล datastore_default
sudo -u postgres createdb -O ckan_default datastore_default -E utf-8

Patipat Jo's avatar
Patipat Jo committed
22
23
24
25
# สร้าง postgres user สำหรับอ่าน datastore_default 
# ใส่ ***{password2}***
sudo -u postgres createuser -S -D -R -P -l datastore_default

Patipat Jo's avatar
Patipat Jo committed
26
27
28
29
#ตรวจสอบ database list ให้มี database ckan_default และ datastore_default
sudo -u postgres psql -l
```

Patipat Jo's avatar
Patipat Jo committed
30
### 3. ติดตั้งและตั้งค่า Solr:
Patipat Jo's avatar
Patipat Jo committed
31
```sh
Patipat Jo's avatar
Patipat Jo committed
32
sudo apt-get install openjdk-8-jdk
Patipat Jo's avatar
Patipat Jo committed
33

Patipat Jo's avatar
Patipat Jo committed
34
# ใช้คำสั่งนี้เพื่อให้เปลี่ยนไปใช้ openjdk-8-jdk
Patipat Jo's avatar
Patipat Jo committed
35
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Patipat Jo's avatar
Patipat Jo committed
36

Patipat Jo's avatar
Patipat Jo committed
37
wget http://archive.apache.org/dist/lucene/solr/6.5.1/solr-6.5.1.tgz
Patipat Jo's avatar
Patipat Jo committed
38

Patipat Jo's avatar
Patipat Jo committed
39
tar xzf solr-6.5.1.tgz solr-6.5.1/bin/install_solr_service.sh --strip-components=2
Patipat Jo's avatar
Patipat Jo committed
40

Patipat Jo's avatar
Patipat Jo committed
41
sudo bash ./install_solr_service.sh solr-6.5.1.tgz
Patipat Jo's avatar
Patipat Jo committed
42

Patipat Jo's avatar
Patipat Jo committed
43
sudo su solr
Patipat Jo's avatar
Patipat Jo committed
44

Patipat Jo's avatar
Patipat Jo committed
45
cd /opt/solr/bin
Patipat Jo's avatar
Patipat Jo committed
46

Patipat Jo's avatar
Patipat Jo committed
47
./solr create -c ckan
Patipat Jo's avatar
Patipat Jo committed
48

Patipat Jo's avatar
Patipat Jo committed
49
cd /var/solr/data/ckan/conf
Patipat Jo's avatar
Patipat Jo committed
50

Patipat Jo's avatar
Patipat Jo committed
51
sed -i '/<config>/a <schemaFactory class="ClassicIndexSchemaFactory"/>' solrconfig.xml
Patipat Jo's avatar
Patipat Jo committed
52

Patipat Jo's avatar
Patipat Jo committed
53
54
55
sed -i '/<initParams path="\/update\/\*\*">/,/<\/initParams>/ s/.*/<!--&-->/' solrconfig.xml

sed -i '/<processor class="solr.AddSchemaFieldsUpdateProcessorFactory">/,/<\/processor>/ s/.*/<!--&-->/' solrconfig.xml
Patipat Jo's avatar
Patipat Jo committed
56

Patipat Jo's avatar
Patipat Jo committed
57
rm managed-schema
Patipat Jo's avatar
Patipat Jo committed
58

Patipat Jo's avatar
Patipat Jo committed
59
ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml schema.xml
Patipat Jo's avatar
Patipat Jo committed
60

Patipat Jo's avatar
Patipat Jo committed
61
exit
Patipat Jo's avatar
Patipat Jo committed
62

Patipat Jo's avatar
Patipat Jo committed
63
sudo service solr restart
Patipat Jo's avatar
Patipat Jo committed
64
```
Patipat Jo's avatar
Patipat Jo committed
65

Patipat Jo's avatar
Patipat Jo committed
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
### 4. ติดตั้ง Package ของ Ubuntu ที่ CKAN ต้องการ:
```sh
sudo apt-get install -y libpq5 redis-server nginx supervisor libpython2.7 python-pip git-core
```

### 5. ตั้งค่า python2 และ pip2:
```sh
#ตรวจสอบเวอร์ชั่นของ python และกำหนดให้เป็นเวอร์ชัน 2.7
python -V
# Python 2.7.x

#ตรวจสอบเวอร์ชั่นของ pip และกำหนดให้เป็นการรันจาก ... (python 2.7)
pip -V
# pip x.x.x from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
```

### 6. ตั้งค่า Nginx และ Storage path:
```sh
#ตั้งค่า Nginx
wget https://gitlab.nectec.or.th/opend/installing-ckan/-/raw/master/config/nginx/ckan_default.conf -P ./nginx

sudo cp ./nginx/ckan_default.conf /etc/nginx/conf.d/ckan_default.conf

#เตรียม proxycache
sudo mkdir -p /var/cache/nginx/proxycache && sudo chown www-data /var/cache/nginx/proxycache

#เตรียม storage path
sudo mkdir -p /var/lib/ckan/default

sudo chown -R www-data:www-data /var/lib/ckan && sudo chmod -R 775 /var/lib/ckan
```

### 7. ดาวน์โหลดและติดตั้ง CKAN package ตามเวอร์ชั่นของ Ubuntu:
ตรวจสอบเวอร์ชั่นของ Ubuntu โดยใช้คำสั่ง 
```sh
cat /etc/os-release
```
- สำหรับ Ubuntu 20.04:
```sh
    wget http://packaging.ckan.org/python-ckan_2.9-py2-focal_amd64.deb
    sudo dpkg -i python-ckan_2.9-py2-focal_amd64.deb
```
- สำหรับ Ubuntu 18.04:
```sh
    wget http://packaging.ckan.org/python-ckan_2.9-bionic_amd64.deb
    sudo dpkg -i python-ckan_2.9-bionic_amd64.deb
```

Patipat Jo's avatar
Patipat Jo committed
114
### 8. ตั้งค่าและสร้างฐานข้อมูลสำหรับ CKAN
Patipat Jo's avatar
Patipat Jo committed
115
116
117
118
119
120
#### 8.1 ตั้งค่า who.ini:
```sh
sudo mv /etc/ckan/default/who.ini /etc/ckan/default/who.ini.bak

sudo ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini
```
Patipat Jo's avatar
Patipat Jo committed
121
#### 8.2 แก้ไขไฟล์ config และสร้างฐานข้อมูล CKAN ดังนี้:
Patipat Jo's avatar
Patipat Jo committed
122
```sh
Patipat Jo's avatar
Patipat Jo committed
123
sudo vi /etc/ckan/default/ckan.ini
Patipat Jo's avatar
Patipat Jo committed
124
    - แก้ไข {password1} (จากการตั้งค่าในขั้นตอนที่ 4) ของ sqlalchemy.url
Patipat Jo's avatar
Patipat Jo committed
125
        > sqlalchemy.url = postgresql://ckan_default:{password1}@localhost/ckan_default
Patipat Jo's avatar
Patipat Jo committed
126
    - เปิดการใช้งาน และแก้ไข {password1} (จากการตั้งค่าในขั้นตอนที่ 4) ของ ckan.datastore.write_url
Patipat Jo's avatar
Patipat Jo committed
127
        > ckan.datastore.write_url = postgresql://ckan_default:{password1}@localhost/datastore_default
Patipat Jo's avatar
Patipat Jo committed
128
    - เปิดการใช้งาน และแก้ไข {password2} (จากการตั้งค่าในขั้นตอนที่ 4) ของ ckan.datastore.read_url
Patipat Jo's avatar
Patipat Jo committed
129
130
        > ckan.datastore.read_url = postgresql://datastore_default:{password2}@localhost/datastore_default
    - กำหนด ip หรือ domain name ที่ ckan.site_url
Patipat Jo's avatar
Patipat Jo committed
131
        > ckan.site_url = http://{ip address}
Patipat Jo's avatar
Patipat Jo committed
132
133
    - เปิดการใช้งาน และแก้ไข solr_url
        > solr_url = http://127.0.0.1:8983/solr/ckan
Patipat Jo's avatar
Patipat Jo committed
134
135
136
137
138
139
140
141
142
143
144
    - เปิดการใช้งาน ckan.redis.url
        > ckan.redis.url = redis://localhost:6379/0
    - แก้ไข ckan.plugins (ให้เหมือนตามนี้)
        > ckan.plugins = stats text_view image_view recline_view resource_proxy datastore datapusher webpage_view
    - แก้ไข ckan.views.default_views (ให้เหมือนตามนี้)
        > ckan.views.default_views = image_view text_view recline_view webpage_view
    - เปิดการใช้งานและแก้ไข ckan.storage_path
        > ckan.storage_path = /var/lib/ckan/default
    - เปิดการใช้งาน ckan.datapusher.url
        > ckan.datapusher.url = http://127.0.0.1:8800/

Patipat Jo's avatar
Patipat Jo committed
145
146
sudo service solr restart

Patipat Jo's avatar
Patipat Jo committed
147
sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
148
149
150
151

sudo ckan db init
```

Patipat Jo's avatar
Patipat Jo committed
152
#### 8.3 แก้ไข CKAN Datapusher ให้สามารถประมวลผลไฟล์ภาษาไทย:
Patipat Jo's avatar
Patipat Jo committed
153
154
155
156
157
158
```sh
sudo vi /usr/lib/ckan/datapusher/src/datapusher/datapusher/jobs.py
    # Some headers might have been converted from strings to floats and such.
    headers = [unicode(header) for header in headers]
```

Patipat Jo's avatar
Patipat Jo committed
159
### 9. ปรับแก้ไขสิทธิ์ที่จำเป็น:
Patipat Jo's avatar
Patipat Jo committed
160
161
162
163
164
165
166
167
168
169
```sh
sudo rm -rf /etc/nginx/sites-enabled/ckan

sudo chown -R `whoami` /usr/lib/ckan/default

sudo chmod -R 775 /usr/lib/ckan/default/src/ckan/ckan/public

sudo chown -R www-data:www-data /usr/lib/ckan/default/src/ckan/ckan/public
```

Patipat Jo's avatar
Patipat Jo committed
170
### 10. สร้าง CKAN SysAdmin และกำหนดสิทธิ์ DataStore:
Patipat Jo's avatar
Patipat Jo committed
171
172
173
```sh
. /usr/lib/ckan/default/bin/activate

Patipat Jo's avatar
Patipat Jo committed
174
175
176
cd /usr/lib/ckan

pip install --upgrade pip
Patipat Jo's avatar
Patipat Jo committed
177
178

#เปลี่ยน {username}
Patipat Jo's avatar
Patipat Jo committed
179
ckan -c /etc/ckan/default/ckan.ini sysadmin add {username}
Patipat Jo's avatar
Patipat Jo committed
180

Patipat Jo's avatar
Patipat Jo committed
181
#กำหนดสิทธิ์ DataStore
Patipat Jo's avatar
Patipat Jo committed
182
ckan -c /etc/ckan/default/ckan.ini datastore set-permissions | sudo -u postgres psql --set ON_ERROR_STOP=1
Patipat Jo's avatar
Patipat Jo committed
183
184
185
186
187
188

deactivate

sudo supervisorctl reload

sudo service nginx restart
Patipat Jo's avatar
Patipat Jo committed
189
190
```

Patipat Jo's avatar
Patipat Jo committed
191
### 11. ทดสอบเรียกใช้เว็บไซต์ผ่าน http://{ip address} และ login ด้วย SysAdmin
Patipat Jo's avatar
Patipat Jo committed
192
193
194
195
196
197
198
199
200


### 12. cronjob สำหรับ page view tracking:
```sh
crontab -e
```
เพิ่มคำสั่งต่อไปนี้

    @hourly /usr/lib/ckan/default/bin/ckan -c /etc/ckan/default/ckan.ini tracking update && /usr/lib/ckan/default/bin/ckan -c /etc/ckan/default/ckan.ini search-index rebuild -r
Patipat Jo's avatar
Patipat Jo committed
201
202

### 13. ติดตั้งและตั้งค่า [CKAN Extensions](ckan-extension.md)