Lewati ke konten utama

Deploy Wagtail Python-Based CMS into Jelastic PaaS

content management system

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.

content management system

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.

wagtail mariadb

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.

django framework

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.

catatan

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
wagtail hosting

2. Deploy archive ini ke dalam environment Python 3.x Anda.

wagtail hosting

3. Setelah operasi selesai, pilih tombol Open in Browser di sebelah environment Anda.

django

4. Selesai! Sekarang Anda dapat menikmati bekerja dengan aplikasi Wagtail CMS Anda (kredensial default untuk panel admin adalah - admin / verysecurepasswordforadmin).

django

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.

cloud cms

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
python cms

3. Sekarang, unduh installer Wagtail CMS menggunakan package manager pip untuk Python:

pip install wagtail
wagtail postgresql
catatan

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
python hosting

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.

wagtail hosting

2. Buka panel admin database dan masuk dengan kredensial dari email yang sesuai (dikirim secara otomatis setelah pembuatan node DB).

cloud cms

3. Navigasikan ke tab User accounts untuk membuat user yang akan mengakses database Wagtail CMS dengan mengklik tautan Add user account.

django-based application

4. Pada halaman yang terbuka, tentukan User name /Password dan centang kotak Create database with same name and grant all privileges.

wagtail cms tutorial

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',
}
}
python hosting

Berikut ini:

  • ENGINE - ubah menjadi django.db.backends.mysql
catatan

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
wagtail
catatan

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
wagtail sqlite

2. Selanjutnya, atur kredensial admin untuk panel kontrol Wagtail CMS:

python manage.py createsuperuser
wagtail sqlite

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()
wagtail

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

python application deployment

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.

django framework

6. Hasilnya, Anda akan melihat halaman sambutan aplikasi.

django

Klik hyperlink here untuk mengakses panel admin.

7. Masuk menggunakan kredensial yang ditentukan selama proses instalasi.

django-based cms

Sekarang, Anda dapat menggunakan fungsi panel admin untuk membuat halaman dan mengisinya dengan konten.

django framework