from-package-2.9.md 8.16 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

Patipat Jo's avatar
Patipat Jo committed
3
การติดตั้ง CKAN 2.9 จาก Package จะมี Service และ Port ที่ต้องใช้ดังนี้
Patipat Jo's avatar
Patipat Jo committed
4
5
6
7

| Service | Port | Used for |
| ------- | ---- | -------- |
| NGINX | 80 | Proxy |
Patipat Jo's avatar
Patipat Jo committed
8
9
| uWSGI | 8080 | Web Server |
| uWSGI | 8800 | DataPusher |
Patipat Jo's avatar
Patipat Jo committed
10
11
12
13
14
15
16
17
18
| Solr/Jetty | 8983 | Search |
| PostgreSQL | 5432 | Database |
| Redis | 6379 | Search |

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

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

Patipat Jo's avatar
Patipat Jo committed
23
24
# สร้าง postgres user สำหรับเขียน ckan_default, datastore_default 
# ใส่ ***{password1}***
Patipat Jo's avatar
Patipat Jo committed
25
26
27
28
29
30
31
32
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
33
34
35
36
# สร้าง postgres user สำหรับอ่าน datastore_default 
# ใส่ ***{password2}***
sudo -u postgres createuser -S -D -R -P -l datastore_default

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

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

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

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

Patipat Jo's avatar
Patipat Jo committed
50
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
51

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

Patipat Jo's avatar
Patipat Jo committed
54
sudo su solr
Patipat Jo's avatar
Patipat Jo committed
55

Patipat Jo's avatar
Patipat Jo committed
56
cd /opt/solr/bin
Patipat Jo's avatar
Patipat Jo committed
57

Patipat Jo's avatar
Patipat Jo committed
58
./solr create -c ckan
Patipat Jo's avatar
Patipat Jo committed
59

Patipat Jo's avatar
Patipat Jo committed
60
cd /var/solr/data/ckan/conf
Patipat Jo's avatar
Patipat Jo committed
61

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

Patipat Jo's avatar
Patipat Jo committed
64
65
66
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
67

Patipat Jo's avatar
Patipat Jo committed
68
rm managed-schema
Patipat Jo's avatar
Patipat Jo committed
69

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

Patipat Jo's avatar
Patipat Jo committed
72
exit
Patipat Jo's avatar
Patipat Jo committed
73

Patipat Jo's avatar
Patipat Jo committed
74
sudo service solr restart
Patipat Jo's avatar
Patipat Jo committed
75
```
Patipat Jo's avatar
Patipat Jo committed
76

Patipat Jo's avatar
Patipat Jo committed
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
114
115
116
117
118
119
120
121
122
123
124
125
126
### 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
cd ~

#ตั้งค่า 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
127
### 8. ตั้งค่าและสร้างฐานข้อมูลสำหรับ CKAN
Patipat Jo's avatar
Patipat Jo committed
128
129
130
131
132
133
#### 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
134
#### 8.2 แก้ไขไฟล์ config และสร้างฐานข้อมูล CKAN ดังนี้:
Patipat Jo's avatar
Patipat Jo committed
135
```sh
Patipat Jo's avatar
Patipat Jo committed
136
sudo vi /etc/ckan/default/ckan.ini
Patipat Jo's avatar
Patipat Jo committed
137
    - แก้ไข {password1} (จากการตั้งค่าในขั้นตอนที่ 4) ของ sqlalchemy.url
Patipat Jo's avatar
Patipat Jo committed
138
        > sqlalchemy.url = postgresql://ckan_default:{password1}@localhost/ckan_default
Patipat Jo's avatar
Patipat Jo committed
139
    - เปิดการใช้งาน และแก้ไข {password1} (จากการตั้งค่าในขั้นตอนที่ 4) ของ ckan.datastore.write_url
Patipat Jo's avatar
Patipat Jo committed
140
        > ckan.datastore.write_url = postgresql://ckan_default:{password1}@localhost/datastore_default
Patipat Jo's avatar
Patipat Jo committed
141
    - เปิดการใช้งาน และแก้ไข {password2} (จากการตั้งค่าในขั้นตอนที่ 4) ของ ckan.datastore.read_url
Patipat Jo's avatar
Patipat Jo committed
142
143
        > ckan.datastore.read_url = postgresql://datastore_default:{password2}@localhost/datastore_default
    - กำหนด ip หรือ domain name ที่ ckan.site_url
Patipat Jo's avatar
Patipat Jo committed
144
        > ckan.site_url = http://{ip address}
Patipat Jo's avatar
Patipat Jo committed
145
146
    - เปิดการใช้งาน และแก้ไข solr_url
        > solr_url = http://127.0.0.1:8983/solr/ckan
Patipat Jo's avatar
Patipat Jo committed
147
148
149
150
151
152
153
154
155
156
157
    - เปิดการใช้งาน 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
158
sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
159
160
161
162

sudo ckan db init
```

Patipat Jo's avatar
Patipat Jo committed
163
#### 8.3 แก้ไข CKAN Datapusher ให้สามารถประมวลผลไฟล์ภาษาไทย:
Patipat Jo's avatar
Patipat Jo committed
164
165
166
167
168
169
```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
170
### 9. ปรับแก้ไขสิทธิ์ที่จำเป็น:
Patipat Jo's avatar
Patipat Jo committed
171
172
173
174
175
176
177
178
179
180
```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
181
### 10. สร้าง CKAN SysAdmin และกำหนดสิทธิ์ DataStore:
Patipat Jo's avatar
Patipat Jo committed
182
183

```sh
Patipat Jo's avatar
Patipat Jo committed
184
cd /usr/lib/ckan
Patipat Jo's avatar
Patipat Jo committed
185
186
187
188
189
190

. /usr/lib/ckan/default/bin/activate

/usr/lib/ckan/default/bin/python -m pip install --upgrade pip

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

Patipat Jo's avatar
Patipat Jo committed
193
#กำหนดสิทธิ์ DataStore
Patipat Jo's avatar
Patipat Jo committed
194
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
195
196
197
198
199
200

deactivate

sudo supervisorctl reload

sudo service nginx restart
Patipat Jo's avatar
Patipat Jo committed
201
202
```

Patipat Jo's avatar
Patipat Jo committed
203
204
205
206
207
208
209
210
211
212
### 11. ทดสอบเรียกใช้เว็บไซต์ผ่าน http://{domain name} และ login ด้วย SysAdmin


### 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
213
214

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