from-package-2.9.md 8.86 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
thepaeth's avatar
thepaeth committed
64
65
66
67
68
69
70
71
72
73
74

# เปิดการทำงานของ 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
75
```
Patipat Jo's avatar
Patipat Jo committed
76

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

Patipat Jo's avatar
Patipat Jo committed
86
87
88
89
sudo add-apt-repository universe

sudo apt install python2

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

sudo update-alternatives --config python

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

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

Patipat Jo's avatar
Patipat Jo committed
177
sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
178
179
180
181

sudo ckan db init
```

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

Patipat Jo's avatar
Patipat Jo committed
197
198
199
cd /usr/lib/ckan

pip install --upgrade pip
Patipat Jo's avatar
Patipat Jo committed
200
201

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

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

deactivate

sudo supervisorctl reload

sudo service nginx restart
Patipat Jo's avatar
Patipat Jo committed
212
213
```

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


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

Patipat Jo's avatar
Patipat Jo committed
225
### 13. การแก้ไขปัญหาการ download file จาก DataStore
Patipat Jo's avatar
Patipat Jo committed
226
เฉพาะกรณีตรวจสอบพบปัญหา หรือที่ตรวจสอบพบว่ามีไฟล์ /usr/lib/ckan/default/src/ckan/ckanext/datastore/blueprint.py
Patipat Jo's avatar
Patipat Jo committed
227
```sh
Patipat Jo's avatar
Patipat Jo committed
228
229
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
230
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
231
232

sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
233
```
Patipat Jo's avatar
Patipat Jo committed
234
235

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