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

thepaeth's avatar
thepaeth committed
51
52
mv solrconfig.xml solrconfig.xml.bak

53
wget https://raw.githubusercontent.com/ckan/ckan/master/contrib/docker/solr/solrconfig.xml
Patipat Jo's avatar
Patipat Jo committed
54

Patipat Jo's avatar
Patipat Jo committed
55
rm managed-schema
Patipat Jo's avatar
Patipat Jo committed
56

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

Patipat Jo's avatar
Patipat Jo committed
59
exit
Patipat Jo's avatar
Patipat Jo committed
60

Patipat Jo's avatar
Patipat Jo committed
61
sudo service solr restart
thepaeth's avatar
thepaeth committed
62
63
64
65
66
67
68
69
70
71
72

# เปิดการทำงานของ firewall ufw
## เพื่อแก้ปัญหาช่องโหว่ของ solr 
### https://issues.apache.org/jira/browse/SOLR-13669
sudo ufw enable

# กำหนด firewall อนุญาตให้เข้าได้เฉพาะ ssh http https
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Patipat Jo's avatar
Patipat Jo committed
73
```
Patipat Jo's avatar
Patipat Jo committed
74

Patipat Jo's avatar
Patipat Jo committed
75
### 4. ติดตั้ง Package ของ Ubuntu ที่ CKAN ต้องการ:
Patipat Jo's avatar
Patipat Jo committed
76
77
78
79
ตรวจสอบเวอร์ชั่นของ Ubuntu โดยใช้คำสั่ง 
```sh
cat /etc/os-release
```
Patipat Jo's avatar
Patipat Jo committed
80
81
- สำหรับ Ubuntu 20.04:
```sh
Patipat Jo's avatar
Patipat Jo committed
82
83
sudo apt-get install -y libpq5 redis-server nginx supervisor libpython2.7 git

Patipat Jo's avatar
Patipat Jo committed
84
85
86
87
sudo add-apt-repository universe

sudo apt install python2

Patipat Jo's avatar
Patipat Jo committed
88
89
90
91
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1

sudo update-alternatives --config python

Patipat Jo's avatar
Patipat Jo committed
92
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
Patipat Jo's avatar
Patipat Jo committed
93
94
95
96

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

Patipat Jo's avatar
Patipat Jo committed
173
174
sudo service solr restart

Patipat Jo's avatar
Patipat Jo committed
175
sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
176
177
178
179

sudo ckan db init
```

Patipat Jo's avatar
Patipat Jo committed
180
### 9. ปรับแก้ไขสิทธิ์ที่จำเป็น:
Patipat Jo's avatar
Patipat Jo committed
181
182
183
184
185
186
187
188
189
190
```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
191
### 10. สร้าง CKAN SysAdmin และกำหนดสิทธิ์ DataStore:
Patipat Jo's avatar
Patipat Jo committed
192
193
194
```sh
. /usr/lib/ckan/default/bin/activate

Patipat Jo's avatar
Patipat Jo committed
195
196
197
cd /usr/lib/ckan

pip install --upgrade pip
Patipat Jo's avatar
Patipat Jo committed
198
199

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

Patipat Jo's avatar
Patipat Jo committed
202
#กำหนดสิทธิ์ DataStore
Patipat Jo's avatar
Patipat Jo committed
203
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
204
205
206
207
208
209

deactivate

sudo supervisorctl reload

sudo service nginx restart
Patipat Jo's avatar
Patipat Jo committed
210
211
```

Patipat Jo's avatar
Patipat Jo committed
212
### 11. ทดสอบเรียกใช้เว็บไซต์ผ่าน http://{ip address} และ login ด้วย SysAdmin
Patipat Jo's avatar
Patipat Jo committed
213
214
215
216
217
218
219
220
221


### 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
222

Patipat Jo's avatar
Patipat Jo committed
223
### 13. การแก้ไขปัญหาการ download file จาก DataStore
Patipat Jo's avatar
Patipat Jo committed
224
เฉพาะกรณีตรวจสอบพบปัญหา หรือที่ตรวจสอบพบว่ามีไฟล์ /usr/lib/ckan/default/src/ckan/ckanext/datastore/blueprint.py
Patipat Jo's avatar
Patipat Jo committed
225
```sh
Patipat Jo's avatar
Patipat Jo committed
226
227
mv /usr/lib/ckan/default/src/ckan/ckanext/datastore/blueprint.py /usr/lib/ckan/default/src/ckan/ckanext/datastore/blueprint.py.bak

Patipat Jo's avatar
Patipat Jo committed
228
wget https://gitlab.nectec.or.th/opend/installing-ckan/-/raw/master/config/datastore/blueprint.py -O /usr/lib/ckan/default/src/ckan/ckanext/datastore/blueprint.py
Patipat Jo's avatar
Patipat Jo committed
229
230

sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
231
```
Patipat Jo's avatar
Patipat Jo committed
232
233

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