from-package-2.9.md 8.71 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
- สำหรับ Ubuntu 20.04:
```sh
Patipat Jo's avatar
Patipat Jo committed
80
81
sudo apt-get install -y libpq5 redis-server nginx supervisor libpython2.7 git

Patipat Jo's avatar
Patipat Jo committed
82
83
84
85
sudo add-apt-repository universe

sudo apt install python2

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

sudo update-alternatives --config python

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

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

Patipat Jo's avatar
Patipat Jo committed
173
sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
174
175
176
177

sudo ckan db init
```

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

Patipat Jo's avatar
Patipat Jo committed
193
194
195
cd /usr/lib/ckan

pip install --upgrade pip
Patipat Jo's avatar
Patipat Jo committed
196
197

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

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

deactivate

sudo supervisorctl reload

sudo service nginx restart
Patipat Jo's avatar
Patipat Jo committed
208
209
```

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


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

Patipat Jo's avatar
Patipat Jo committed
221
### 13. การแก้ไขปัญหาการ download file จาก DataStore
Patipat Jo's avatar
Patipat Jo committed
222
เฉพาะกรณีตรวจสอบพบปัญหา หรือที่ตรวจสอบพบว่ามีไฟล์ /usr/lib/ckan/default/src/ckan/ckanext/datastore/blueprint.py
Patipat Jo's avatar
Patipat Jo committed
223
```sh
Patipat Jo's avatar
Patipat Jo committed
224
225
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
226
wget https://gitlab.nectec.or.th/opend/installing-ckan/-/raw/master/config/datastore/blueprint.py /usr/lib/ckan/default/src/ckan/ckanext/datastore/
Patipat Jo's avatar
Patipat Jo committed
227
228

sudo supervisorctl reload
Patipat Jo's avatar
Patipat Jo committed
229
```
Patipat Jo's avatar
Patipat Jo committed
230
231

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