Deploy Wagtail Python-Based CMS into Jelastic PaaS
Wagtail CMS (content management system) adalah CMS yang sederhana dan lincah berbasis Django, yang menawarkan antarmuka yang nyaman dan intuitif bagi editor untuk membuat dan menyusun konten situs web. Wagtail diterbitkan di bawah lisensi BSD, yang memberikan kebebasan sebanyak mungkin kepada Anda. Kinerja luar biasa dan optimisasi CMS ini memastikan pemuatan halaman dan pencarian yang sangat cepat. Dengan keuntungan dari Wagtail, Anda dapat menghabiskan lebih sedikit waktu untuk mengonfigurasi situs Anda dan lebih banyak waktu untuk menyempurnakan proyek Anda (menggunakan sejumlah besar alat di panel administrasi untuk bekerja dengan konten).
Artikel ini menjelaskan cara melakukan deployment Wagtail CMS ke dalam environment Python di Jelastic.
Create Python Environment
Untuk memulai, Anda perlu membuat environment dengan server aplikasi yang sesuai - server web Apache dengan engine Python.
1. Untuk membuat New Environment, masuk ke dashboard Jelastic Anda dan klik tombol dengan nama yang sama di sudut kiri atas.
2. Dalam topology wizard yang terbuka, beralih ke tab Python dan pilih versi Python yang diperlukan untuk node server aplikasi Apache yang dipilih secara otomatis.
Note: Versi terbaru Wagtail CMS hanya mendukung Python 3.x. Pada instance Python 2.7, jalankan versi aplikasi 1.13.
Konfigurasikan semua pengaturan lain sesuai kebutuhan Anda (misalnya cloudlet limit, ruang disk, region, dll.), tetapkan nama domain yang diinginkan, dan klik tombol Create.
3. Tunggu beberapa menit hingga environment Anda selesai dibuat.
Sekarang, Anda siap memulai deployment aplikasi Wagtail CMS. Di bawah ini, kami akan menjelaskan bagaimana cara melakukan deployment secara otomatis menggunakan archive yang sudah dikemas sebelumnya dan secara manual dari awal.
Wagtail CMS Automatic Deployment
Kami telah menyiapkan archive deployment dengan Wagtail CMS yang sudah dikonfigurasi dengan versi terbaru yang tersedia saat ini (yaitu 2.2) dan database SQLite, yang dapat diinstal dalam hitungan menit tanpa memerlukan konfigurasi manual.
Jika mengonfigurasi archive deployment sendiri, pastikan paket Wagtail CMS Anda berisi file berikut di root-nya:
- file requirements.txt dengan nama semua modul Python yang diperlukan oleh aplikasi Anda, file ini akan dibaca oleh skrip deployment untuk menginstal modul-modul yang terdaftar melalui pip manager secara otomatis
- file wsgi.py dengan skrip entry point untuk menjalankan aplikasi Anda di dalam virtual environment menggunakan mod_wsgi untuk Apache
1. Unggah paket aplikasi Wagtail CMS Anda ke deployment manager melalui tautan berikut:
https://download.jelastic.com/public.php?service=files&t=b01aabf6a7fb615884c27eb4101e5150&download
2. Deploy archive ini ke dalam environment Python 3.x Anda.
3. Setelah operasi selesai, pilih tombol Open in Browser di sebelah environment Anda.
4. Selesai! Sekarang Anda dapat menikmati bekerja dengan aplikasi Wagtail CMS Anda (kredensial default untuk panel admin adalah - admin / verysecurepasswordforadmin).
Wagtail CMS Manual Deployment
Untuk deployment aplikasi Wagtail CMS secara manual, kami telah membagi prosesnya menjadi tiga langkah utama: instalasi aplikasi, konfigurasi database, dan menjalankan Wagtail CMS.
Install Wagtail CMS
1. Akses server aplikasi Apache Anda melalui SSH. Misalnya, kami akan menggunakan alat Web SSH.
2. Praktik umum untuk menjalankan aplikasi web Python di virtual environment yang terisolasi adalah dengan menggunakan alat virtual environment. Alat ini memungkinkan Anda menyimpan ketergantungan yang diperlukan oleh berbagai proyek di tempat terpisah dan mengelolanya tanpa hak administrator.
Jadi, lakukan langkah berikut untuk membuat dan mengaktifkan virtual environment baru:
virtualenv virtenv
source virtenv/bin/activate
3. Sekarang, unduh installer Wagtail CMS menggunakan package manager pip untuk Python:
pip install wagtail
Note: Jika menjalankan instance Python 2.7, Anda perlu menentukan versi aplikasi yang sesuai dalam perintah Anda secara eksplisit, yaitu pip install wagtail==1.13.
4. Kami akan menginstal aplikasi di konteks ROOT, jadi folder yang ada (dengan aplikasi default) harus dihapus terlebih dahulu:
rm -rf ROOT
wagtail start ROOT
Selanjutnya, Anda perlu memilih dan mengkonfigurasi database.
Configure Database
Seperti semua aplikasi berbasis Django, Wagtail CMS mendukung berbagai jenis database:
- SQLite adalah opsi default, yang tidak memerlukan konfigurasi tambahan (data akan disimpan secara lokal di ~/ROOT/db.sqlite3); cepat, sederhana, dan ringan, sangat cocok untuk tujuan development dan testing
- external database (misalnya MySQL atau PostgreSQL) adalah solusi yang lebih cocok untuk lingkungan production; menyediakan tingkat keamanan dan skalabilitas yang memadai
Di bawah ini, kami akan memberikan panduan langkah demi langkah untuk menghubungkan database eksternal ke aplikasi Wagtail CMS Anda. Jika opsi pertama sudah cukup untuk keperluan Anda, lewati bagian ini dan lanjutkan ke Run Wagtail CMS berikutnya.
1. Buat instance database yang diinginkan. Misalnya, gunakan tombol Change Environment Topology untuk menambahkan server MariaDB ke environment Anda dengan Wagtail CMS yang terinstal.
2. Buka panel admin database dan masuk dengan kredensial dari email yang sesuai (dikirim secara otomatis setelah pembuatan node DB).
3. Navigasikan ke tab User accounts untuk membuat user yang akan mengakses database Wagtail CMS dengan mengklik tautan Add user account.
4. Pada halaman yang terbuka, tentukan User name /Password dan centang kotak Create database with same name and grant all privileges.
Klik Go di bagian bawah halaman.
5. Kembali ke dashboard dan buka file /var/www/webroot/ROOT/ROOT/settings/base.py. Temukan bagian DATABASES dan tambahkan kredensial akses DB dalam bagian yang sama (seperti yang ditunjukkan di bawah):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'wagtail',
'USER': 'wagtail',
'PASSWORD': 'passw0rd',
'HOST': 'node22551-wagtail.jelastic.com',
'PORT': '3306',
}
}
Berikut ini:
- ENGINE - ubah menjadi django.db.backends.mysql
Untuk database PostgreSQL, gunakan nilai django.db.backends.postgresql_psycopg2
.
- NAME, USER, PASSWORD - masukkan data tentang DB dan akun yang dibuat pada langkah sebelumnya
- HOST - dapatkan nilai dari email yang sesuai
- PORT - atur port default 3306 (atau 5432 untuk PostgreSQL)
Jangan lupa untuk Save perubahan.
6. Terakhir, instal MySQL connector untuk Python melalui Web SSH (dari folder ~/ROOT):
pip install mysqlclient
Untuk menginstal Python connector untuk database PostgreSQL, dapatkan modul psycopg2 menggunakan pip:
PATH=$PATH:/usr/pgsql-9.6/bin/ pip install psycopg2
Jika diperlukan, modifikasi bagian pgsql-9.6 sesuai dengan versi server PostgreSQL yang digunakan.
Run Wagtail CMS
Setelah DB Anda disiapkan, Anda perlu membuat skema database aplikasi.
1. Masuk ke folder ~/ROOT dan jalankan skrip manage.py.
cd ROOT
python manage.py migrate
2. Selanjutnya, atur kredensial admin untuk panel kontrol Wagtail CMS:
python manage.py createsuperuser
Dalam dialog, Anda perlu memberikan Username, Email address, dan Password dengan konfirmasi.
3. Untuk menjalankan aplikasi, kami menggunakan mod_wsgi, jadi handler wsgi harus dibuat.
Masuk ke direktori /var/www/webroot/ROOT dan buat file wsgi.py dengan konten berikut:
import os,sys
virtenv = os.path.expanduser('~') + '/virtenv/'
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
if sys.version.split(' ')[0].split('.')[0] == '3':
exec(compile(open(virtualenv, "rb").read(), virtualenv, 'exec'), dict(__file__=virtualenv))
else:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass
sys.path.append(os.path.expanduser('~'))
sys.path.append(os.path.expanduser('~') + '/ROOT/')
sys.path.append(os.path.expanduser('~') + '/ROOT/ROOT/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ROOT.settings.dev'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Save file yang baru dibuat.
4. Selain itu, karena kami ingin melayani konten statis melalui server Apache Python kami, kami perlu mengumpulkan konten tersebut (jalankan dari folder ~/ROOT):
python manage.py collectstatic
Setelah melakukan tindakan ini, semua konten statis dari aplikasi saat ini disimpan di direktori ~/ROOT/static.
5. Selesai! Sekarang, Anda dapat mengklik tombol Open in Browser di sebelah environment Anda dengan Wagtail CMS.
6. Hasilnya, Anda akan melihat halaman sambutan aplikasi.
Klik hyperlink here untuk mengakses panel admin.
7. Masuk menggunakan kredensial yang ditentukan selama proses instalasi.
Sekarang, Anda dapat menggunakan fungsi panel admin untuk membuat halaman dan mengisinya dengan konten.