Mezzanine CMS: Python-Based Hosting with Jelastic PaaS
Mezzanine CMS (content management system) adalah solusi open source yang kuat dan mudah digunakan untuk manajemen konten dan blog. Dibangun di atas Django - framework pengembangan web berbasis Python - di bawah lisensi BSD. Fungsi default Mezzanine CMS memungkinkan mencakup sebagian besar kebutuhan umum. Pada saat yang sama, karena jumlah besar ekstensi pihak ketiga, widget, modul, dan tema, platform ini dapat dengan mudah disesuaikan untuk memenuhi kebutuhan spesifik pelanggan.
Mezzanine CMS memberikan manfaat bagi pengembang dan manajer konten:
- Editor WYSIWYG dengan pengurutan halaman Drag-and-Drop dan pengeditan konten visual
- penerbitan terjadwal
- berbagai tema siap pakai
- API yang kaya
- dukungan out-of-the-box untuk Django internationalization, Twitter Bootstrap, Disqus, Akismet spam filter, Twitter feed, dan Google Analytics
- integrasi bawaan dengan media sosial, mesin pencari, fungsi SEO, dan banyak modul lainnya
Jadi, hari ini kita akan membahas cara meng-host CMS seperti itu di Jelastic PaaS.
Create Python Environment
Untuk meng-host Mezzanine CMS, Anda memerlukan server aplikasi berbasis Python. Mari buat environment baru dengan node Apache Python:
1. Klik tombol New Environment di bagian atas dashboard untuk mengakses topology wizard.
2. Buka tab Python, di mana server aplikasi Apache Python yang diperlukan akan dipilih secara default.
Mezzanine CMS belum mendukung Python 3.7, dan juga tidak mendukung Python 2.7 setelah rilis 1.4. Oleh karena itu, disarankan untuk memilih antara versi engine 3.4-3.6.
Jika diperlukan, konfigurasikan pengaturan lainnya (misalnya cloudlet limit, public IPs, region, dll.), ketik nama environment dan klik Create.
3. Environment Anda akan muncul di dashboard dalam beberapa saat.
Sekarang, Anda dapat melanjutkan ke deployment aplikasi Mezzanine CMS (secara otomatis dari archive yang sudah dikemas sebelumnya atau secara manual).
Mezzanine CMS Automatic Deployment
Anda dapat melakukan deployment Mezzanine CMS secara otomatis menggunakan archive deployment yang telah disiapkan khusus dengan versi aplikasi terbaru (yaitu 4.3.1) yang sudah dikonfigurasi dengan database SQLite.
Jika mengonfigurasi archive deployment sendiri, pastikan paket Mezzanine 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. Tambahkan archive aplikasi ke deployment manager melalui tautan berikut:
https://download.jelastic.com/public.php?service=files&t=3d6fa1ed641a044c6a291bbeaa6c333c&download
2. Deploy Mezzanine CMS ke dalam environment dengan server aplikasi Apache Python.
3. Setelah deployment berhasil, klik Open in Browser di sebelah environment Anda.
4. Selesai, Mezzanine CMS Anda berjalan dalam beberapa menit!
Mulailah bekerja dengan aplikasi Mezzanine CMS Anda (kredensial default untuk panel admin adalah - admin /default).
Mezzanine CMS Manual Deployment
Proses deployment Mezzanine CMS dapat dibagi menjadi tiga langkah: instalasi, konfigurasi database, dan menjalankan aplikasi.
Install Mezzanine CMS
1. Hubungkan ke server aplikasi Anda melalui Web SSH.
2. Praktik umum menjalankan aplikasi web Python di virtual environment yang terisolasi adalah dengan menggunakan alat virtual environment, yang memungkinkan pengelolaan ketergantungan proyek secara independen dan tanpa hak administrator.
Buat dan mulai virtual environment baru dengan perintah berikut:
virtualenv virtenv
source virtenv/bin/activate
3. Gunakan pip package manager untuk mengunduh Mezzanine content manager:
pip install mezzanine
Pada server dengan versi Python 2.7, Anda harus mendefinisikan versi Mezzanine yang sesuai secara eksplisit, yaitu pip install mezzanine==1.4.
4. Hapus aplikasi default di konteks ROOT dan instal proyek Mezzanine sebagai gantinya:
rm -rf ROOT
mezzanine-project ROOT
Sekarang, Anda perlu mengkonfigurasi database untuk aplikasi tersebut.
Configure Database
Anda memiliki dua opsi utama saat memilih database untuk Mezzanine CMS:
- SQLite adalah solusi default yang diterapkan secara otomatis dan tidak memerlukan konfigurasi tambahan (data akan disimpan secara lokal di ~/ROOT/db.sqlite3); ini cocok untuk tujuan development dan testing
- external SQL database (misalnya MySQL atau PostgreSQL) adalah opsi yang lebih aman, yang menyediakan skalabilitas lebih besar; disarankan untuk lingkungan production
Jika opsi pertama sudah cukup bagi Anda, lewati bagian ini dan lanjutkan ke bagian Run Mezzanine CMS. Untuk penggunaan database eksternal, Anda dapat menemukan panduan langkah demi langkah yang diperlukan pada langkah-langkah berikut:
1. Buat instance database yang diinginkan. Sebagai contoh, kami akan menambahkan server MySQL ke environment terpisah.
2. Masuk ke panel admin database Anda dengan kredensial dari email yang sesuai (dikirim secara otomatis setelah pembuatan node DB).
3. Beralih ke tab User accounts dan klik tautan Add user account untuk membuat akun baru yang akan digunakan oleh aplikasi Mezzanine CMS untuk mengakses database.
4. Pada halaman yang terbuka, tentukan User name /Password yang diinginkan dan centang kotak Create database with same name and grant all privileges.
Gulir ke bawah dan klik Go.
5. Kembali ke dashboard dan buka file /var/www/webroot/ROOT/ROOT/****local_settings.py. Temukan bagian DATABASES dan masukkan kredensial akses DB Anda:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "mezzanine",
"USER": "mezzanine",
"PASSWORD": "passw0rd",
"HOST": "node23132-mezzanine-db.jelastic.com",
"PORT": "3306",
}
}
Berikut ini:
- ENGINE - ganti dengan jenis database ke django.db.backends.mysql (atau django.db.backends.postgresql_psycopg2 untuk database PostgreSQL)
- NAME, USER, PASSWORD - berikan data pada DB dan akun khusus (yang dibuat pada langkah sebelumnya)
- HOST - dapatkan nilai dari email yang sesuai
- PORT - atur port default 3306 (atau 5432 untuk PostgreSQL)
Save perubahan.
6. Terakhir, Anda perlu menginstal MySQL connector untuk Python. Jalankan perintah berikut melalui Web SSH:
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.
Start Mezzanine 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 createdb --noinput
Penggunaan parameter --noinput secara otomatis membuat akun admin Mezzanine dengan kredensial admin /default.
2. mod_wsgi digunakan untuk menjalankan aplikasi, jadi sesuaikan file /var/www/webroot/ROOT/ROOT/****wsgi.py sebagai 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'
from django.core.wsgi import get_wsgi_application
from mezzanine.utils.conf import real_project_name
application = get_wsgi_application()
Jangan lupa untuk Save perubahan.
3. Konfigurasikan symlink ke file dan juga kumpulkan konten statis dengan perintah berikut (jalankan dari folder ~/ROOT):
ln -sfT ~/ROOT/ROOT/wsgi.py ~/ROOT/wsgi.py
python manage.py collectstatic
Sekarang, konten statis aplikasi disimpan di direktori ~/ROOT/static.
4. Buka file /var/www/webroot/ROOT/ROOT/****local_settings.py dan sesuaikan catatan ALLOWED_HOSTS dengan menyediakan nama domain environment Anda:
ALLOWED_HOSTS = ["{envDomain}"]
5. Selesai! Klik tombol Open in Browser di sebelah environment Anda untuk mengakses Mezzanine CMS.
6. Halaman sambutan aplikasi akan terbuka secara default.
Ikuti hyperlink Log in to the admin interface untuk mengakses panel admin.
7. Masuk dengan kredensial akun admin default (yaitu admin / default).
Untuk alasan keamanan, disarankan untuk segera mengganti kata sandi default Anda setelah pertama kali masuk.