from-package.md 7.98 KB
Newer Older
Patipat Jo's avatar
Patipat Jo committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# วิธีการติดตั้ง CKAN จาก Package บน Ubuntu Linux

การติดตั้ง CKAN จาก Package จะมี port และ service ที่ต้องใช้ดังนี้

| Service | Port | Used for |
| ------- | ---- | -------- |
| NGINX | 80 | Proxy |
| Apache2 | 8080 | Web Server |
| Solr/Jetty | 8983 | Search |
| PostgreSQL | 5432 | Database |
| Redis | 6379 | Search |

### 1. อัพเดท Package ของ Ubuntu:
```sh
sudo apt-get update
```

### 2. ตั้งค่า python2 และ pip2:
```sh
#ตรวจสอบเวอร์ชั่นของ python และตั้งค่า default python2
python -V
    # หากยังไม่ใช่ version 2 ใช้คำสั่งนี้ และ select python2
    sudo update-alternatives --config python

#ตรวจสอบเวอร์ชั่นของ pip และตั้งค่า default pip2
pip -V
    # หากยังไม่ใช่ version 2 ใช้คำสั่งนี้
    sudo cp /usr/local/bin/pip2 /usr/local/bin/pip
```

### 3. ติดตั้ง Package ของ Ubuntu ที่ CKAN ต้องการ:
```sh
sudo apt-get install -y nginx apache2 libapache2-mod-wsgi libpq5 redis-server git-core
```

### 4. ดาวน์โหลด CKAN Package ตามเวอร์ชั่นของ Ubuntu:
Patipat Jo's avatar
Patipat Jo committed
37
38
39
40
41
42
ตรวจสอบเวอร์ชั่นของ Ubuntu โดยใช้คำสั่ง 
```sh
cat /etc/os-release

cd ~
```
Patipat Jo's avatar
Patipat Jo committed
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
- ดาวน์โหลด CKAN Package สำหรับ Ubuntu 20.04:
```sh
    wget http://packaging.ckan.org/python-ckan_2.9-py2-focal_amd64.deb
```
- ดาวน์โหลด CKAN Package สำหรับ Ubuntu 18.04:
```sh
    wget http://packaging.ckan.org/python-ckan_2.9-bionic_amd64.deb
```
- ดาวน์โหลด CKAN Package สำหรับ Ubuntu 16.04:
```sh
    wget http://packaging.ckan.org/python-ckan_2.8-xenial_amd64.deb
```

### 5. ติดตั้งและตั้งค่า PostgreSQL
```sh
sudo apt-get install -y postgresql

Patipat Jo's avatar
Patipat Jo committed
60
# สร้าง postgres user สำหรับ ckan_default และใส่ password1
Patipat Jo's avatar
Patipat Jo committed
61
62
63
64
sudo -u postgres createuser -S -D -R -P ckan_default

sudo -u postgres createdb -O ckan_default ckan_default -E utf-8

Patipat Jo's avatar
Patipat Jo committed
65
# สร้าง postgres user สำหรับ datastore_default และใส่ password2
Patipat Jo's avatar
Patipat Jo committed
66
67
68
69
sudo -u postgres createuser -S -D -R -P -l datastore_default

sudo -u postgres createdb -O ckan_default datastore_default -E utf-8

Patipat Jo's avatar
Patipat Jo committed
70
#ตรวจสอบ database list ให้ database ckan_default และ datastore_default
Patipat Jo's avatar
Patipat Jo committed
71
72
73
74
75
76
sudo -u postgres psql -l
```

### 6. ตั้งค่า Apache และ Nginx:
```sh
#ตั้งค่า Apache
Patipat Jo's avatar
Patipat Jo committed
77
wget https://gitlab.nectec.or.th/opend/ckan-for-gdc/-/raw/master/CKAN/config/apache/ckan_default.conf -P ./apache
Patipat Jo's avatar
Patipat Jo committed
78

Patipat Jo's avatar
Patipat Jo committed
79
sudo cp ./apache/ckan_default.conf /etc/apache2/sites-available/ckan_default.conf
Patipat Jo's avatar
Patipat Jo committed
80
81

#ตั้งค่า Nginx
Patipat Jo's avatar
Patipat Jo committed
82
wget https://gitlab.nectec.or.th/opend/ckan-for-gdc/-/raw/master/CKAN/config/nginx/ckan_default.conf -P ./nginx
Patipat Jo's avatar
Patipat Jo committed
83

Patipat Jo's avatar
Patipat Jo committed
84
sudo cp ./nginx/ckan_default.conf /etc/nginx/conf.d/ckan_default.conf
Patipat Jo's avatar
Patipat Jo committed
85
86
87
88
89

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

sudo chown www-data /var/cache/nginx/proxycache
Patipat Jo's avatar
Patipat Jo committed
90
91
92
93
94
95

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

cd /var/lib/

Patipat Jo's avatar
Patipat Jo committed
96
sudo chown -R www-data:www-data ckan/
Patipat Jo's avatar
Patipat Jo committed
97
98

sudo chmod -R 775 ckan/
Patipat Jo's avatar
Patipat Jo committed
99

Patipat Jo's avatar
Patipat Jo committed
100
cd ~
Patipat Jo's avatar
Patipat Jo committed
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
```

### 7. ติดตั้ง CKAN package:
- สำหรับ Ubuntu 20.04:
```sh
    sudo dpkg -i python-ckan_2.9-py2-focal_amd64.deb
```
- สำหรับ Ubuntu 18.04:
```sh
    sudo dpkg -i python-ckan_2.9-bionic_amd64.deb
```
- สำหรับ Ubuntu 16.04:
```sh
    sudo dpkg -i python-ckan_2.8-xenial_amd64.deb
```

### 8. ตั้งค่าและสร้างฐานข้อมูลสำหรับ CKAN
1. ตั้งค่า who.ini และ apache.wsgi:
```sh
#ตั้งค่า who.ini
sudo rm -rf /etc/ckan/default/who.ini

sudo ln -s /usr/lib/ckan/default/src/ckan/who.ini /etc/ckan/default/who.ini

#ตั้งค่า apache.wsgi
Patipat Jo's avatar
Patipat Jo committed
126
wget https://gitlab.nectec.or.th/opend/ckan-for-gdc/-/raw/master/CKAN/config/apache/apache.wsgi -P ./apache
Patipat Jo's avatar
Patipat Jo committed
127

Patipat Jo's avatar
Patipat Jo committed
128
sudo cp ./apache/apache.wsgi /etc/ckan/default/apache.wsgi
Patipat Jo's avatar
Patipat Jo committed
129
130
131
132
133
```

2. แก้ไขไฟล์ config ของ CKAN ดังนี้:
```sh
sudo vi /etc/ckan/default/production.ini
Patipat Jo's avatar
Patipat Jo committed
134
135
136
137
    - เพิ่มค่า config ถัดจาก [app:main] (มีอยู่แล้ว)
        [app:main]
        ckan.auth.public_user_details = false
        ckan.tracking_enabled = true
Patipat Jo's avatar
Patipat Jo committed
138
    - sqlalchemy.url
Patipat Jo's avatar
Patipat Jo committed
139
        > sqlalchemy.url = postgresql://ckan_default:{password1}@localhost/ckan_default
Patipat Jo's avatar
Patipat Jo committed
140
    - ckan.datastore.write_url
Patipat Jo's avatar
Patipat Jo committed
141
        > ckan.datastore.write_url = postgresql://ckan_default:{password1}@localhost/datastore_default
Patipat Jo's avatar
Patipat Jo committed
142
    - ckan.datastore.read_url
Patipat Jo's avatar
Patipat Jo committed
143
        > ckan.datastore.read_url = postgresql://datastore_default:{password2}@localhost/datastore_default
Patipat Jo's avatar
Patipat Jo committed
144
145
    - ckan.site_url
        > ckan.site_url = http://{domain name}
Patipat Jo's avatar
Patipat Jo committed
146
147
148
149
150
151
152
    - ckan.auth.user_delete_groups
        > ckan.auth.user_delete_groups = false
    - ckan.auth.user_delete_organizations
        > ckan.auth.user_delete_organizations = false
    - ckan.site_id
        > ckan.site_id = default
    - solr_url
Patipat Jo's avatar
Patipat Jo committed
153
        > solr_url = http://127.0.0.1:8983/solr
Patipat Jo's avatar
Patipat Jo committed
154
    - ckan.redis.url
Patipat Jo's avatar
Patipat Jo committed
155
        > ckan.redis.url = redis://localhost:6379/0
Patipat Jo's avatar
Patipat Jo committed
156
    - ckan.plugins
Patipat Jo's avatar
Patipat Jo committed
157
158
159
        > 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
Patipat Jo's avatar
Patipat Jo committed
160
161
162
163
164
165
166
167
168
    - ckan.locale_default
        > ckan.locale_default = th
    - ckan.locale_order
        > ckan.locale_order = en th pt_BR ...(ต่อจากนั้นเหมือนเดิม)
    - ckan.storage_path
        > ckan.storage_path = /var/lib/ckan/default
    - ckan.datapusher.formats
        > ckan.datapusher.formats = csv ...(ต่อจากนั้นเหมือนเดิม)
    - ckan.datapusher.url
Patipat Jo's avatar
Patipat Jo committed
169
        > ckan.datapusher.url = http://127.0.0.1:8800/
Patipat Jo's avatar
Patipat Jo committed
170
    - ckan.datapusher.assume_task_stale_after
Patipat Jo's avatar
Patipat Jo committed
171
        > ckan.datapusher.assume_task_stale_after = 60
Patipat Jo's avatar
Patipat Jo committed
172
173
    - ckan.activity_streams_enabled
        > ckan.activity_streams_enabled = true
Patipat Jo's avatar
Patipat Jo committed
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189

sudo service apache2 restart
```

3. เริ่มต้นสร้างฐานข้อมูลสำหรับ CKAN:
```sh
sudo ckan db init
```

### 9. ติดตั้งและตั้งค่า Solr
```sh
sudo apt-get install -y solr-jetty

sudo vi /etc/default/jetty8
    NO_START=0            # (line 4)
    JETTY_HOST=127.0.0.1  # (line 16)
Patipat Jo's avatar
Patipat Jo committed
190
    JETTY_PORT=8983       # (line 19)
Patipat Jo's avatar
Patipat Jo committed
191
192
193
194
195
196
197
198
199
200

sudo rm -rf /etc/solr/conf/schema.xml

sudo ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /etc/solr/conf/schema.xml

sudo service jetty8 restart
```

### 10. Restart Apache และ Nginx
```sh
Patipat Jo's avatar
Patipat Jo committed
201
sudo rm -rf /etc/nginx/sites-enabled/ckan
Patipat Jo's avatar
Patipat Jo committed
202
203
204
205
206
207

sudo service apache2 restart

sudo service nginx restart
```

Patipat Jo's avatar
Patipat Jo committed
208
209
210
211
212
213
214
### 11. สร้าง sysadmin
```sh
cd /usr/lib/ckan/default/src/ckan

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

paster sysadmin add {username} -c /etc/ckan/default/production.ini
Patipat Jo's avatar
Patipat Jo committed
215
216

paster --plugin=ckan datastore set-permissions -c /etc/ckan/default/production.ini | sudo -u postgres psql --set ON_ERROR_STOP=1
Patipat Jo's avatar
Patipat Jo committed
217
218
219
```

### 12. ทดสอบเรียกใช้เว็บไซต์ผ่าน http://{domain name}
Patipat Jo's avatar
Patipat Jo committed
220

Patipat Jo's avatar
Patipat Jo committed
221
### 13. ติดตั้งและตั้งค่า CKAN Extensions
Patipat Jo's avatar
Patipat Jo committed
222
1. ckanext-pdfview:
Patipat Jo's avatar
Patipat Jo committed
223
224
225
226
227
228
229
```sh
source /usr/lib/ckan/default/bin/activate

cd /usr/lib/ckan/default

sudo pip install -e 'git+https://github.com/ckan/ckanext-pdfview.git#egg=ckanext-pdfview'
```
Patipat Jo's avatar
Patipat Jo committed
230
แก้ไขไฟล์ config ของ CKAN ดังนี้:
Patipat Jo's avatar
Patipat Jo committed
231
```sh
Patipat Jo's avatar
Patipat Jo committed
232
233
234
235
    - ckan.plugins
        > ckan.plugins = stats text_view image_view recline_view resource_proxy datastore datapusher webpage_view pdf_view
    - ckan.views.default_views
        > ckan.views.default_views = image_view text_view recline_view webpage_view pdf_view
Patipat Jo's avatar
Patipat Jo committed
236
```
Patipat Jo's avatar
Patipat Jo committed
237
238
2. ckanext-scheming:
```sh
Patipat Jo's avatar
Patipat Jo committed
239

Patipat Jo's avatar
Patipat Jo committed
240
```
Patipat Jo's avatar
Patipat Jo committed
241