from-package.md 6.83 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
96
97
98

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

cd /var/lib/

sudo chown -R :www-data ckan/

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
134
```

2. แก้ไขไฟล์ config ของ CKAN ดังนี้:
```sh
sudo vi /etc/ckan/default/production.ini
    - sqlalchemy.url
Patipat Jo's avatar
Patipat Jo committed
135
        > sqlalchemy.url = postgresql://ckan_default:{password1}@localhost/ckan_default
Patipat Jo's avatar
Patipat Jo committed
136
    - ckan.datastore.write_url
Patipat Jo's avatar
Patipat Jo committed
137
        > ckan.datastore.write_url = postgresql://ckan_default:{password1}@localhost:5434/datastore_default
Patipat Jo's avatar
Patipat Jo committed
138
    - ckan.datastore.read_url
Patipat Jo's avatar
Patipat Jo committed
139
        > ckan.datastore.read_url = postgresql://datastore_default:{password2}@localhost:5434/datastore_default
Patipat Jo's avatar
Patipat Jo committed
140
141
    - ckan.site_url
        > ckan.site_url = http://{domain name}
Patipat Jo's avatar
Patipat Jo committed
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
    - 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
        > solr_url = http://127.0.0.1:8984/solr/ckan
    - ckan.redis.url
        > ckan.redis.url = redis://localhost:6380/0
    - ckan.plugins
        > ckan.plugins = stats text_view image_view recline_view resource_proxy datastore datapusher
    - 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
        > ckan.datapusher.url = http://127.0.0.1:8811/
    - ckan.datapusher.assume_task_stale_after
        > ckan.datapusher.assume_task_stale_after = 3600
    - ckan.activity_streams_enabled
        > ckan.activity_streams_enabled = true
Patipat Jo's avatar
Patipat Jo committed
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183

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
184
    JETTY_PORT=8984       # (line 19)
Patipat Jo's avatar
Patipat Jo committed
185
186
187
188
189
190
191
192
193
194

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
195
sudo rm -rf /etc/nginx/sites-enabled/ckan
Patipat Jo's avatar
Patipat Jo committed
196
197
198
199
200
201
202
203
204
205
206

sudo service apache2 restart

sudo service nginx restart
```

### 11. ทดสอบเรียกใช้เว็บไซต์ผ่าน http://{domain name}

### 12. ติดตั้งและตั้งค่า >> [CKAN Extension](packages/)