Hosting Website berbasis Python Pada Apache2

 Untuk praktik tutorial ini syarat yang dibutuhkan adalah:

-Pengalaman dengan bahasa pemrogaman Python
-Pengalaman dengan apache2 terutama virtual hosting
-Pengalaman dengan Linux

Tutorial ini menggunakan Ubuntu 20.04.4 (distro turunan Debian) jadi aman kalau terbiasa dengan Debian


Berikut step-by-step nya:
1. Update repository
#apt update

2. Install Web Server Apache 2
#apt install apache2

3. Install Python3 kalau belum ada
#apt install python3

4. Install Flask App
-Buat Directory flasksite
#mkdir flasksite
-Masuk kedalam directory flasksite
#cd flasksite
-Install python3-venv
#apt-get install python3-venv
-Gunakan modul venv untuk membuat virtual environment
#python3 -m venv flask-venv
-Aktifkan virtual environmentnya
#source flask-venv/bin/activate
Kalau berhasil tampilan terminal berubah menjadi seperti ini
(flask-venv) root@hostname:/home/mmtcomputerkandangan/flasksite#

5. Instal dan upgrade python-pip3
-Install pip3
#apt install python3-pip
-Upgrade pip3
# pip3 install --upgrade pip

6. Instal Modul Flask menggunakan pip3
#pip3 install flask



7. Buat file python (.py) untuk percobaan
#nano app.py
-Isi file kosong tersebut dengan:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Hei Anda Berhasil menjalankan flask, selamat anda bisa melanjutkan pelajaran"

-Simpan file tersebut dengan ctrl+x

8. Set variabel environment FLASK_APP=app.py
#export FLASK_APP=app.py


9. Testing
-Jalankan Flask
#flask run --host=0.0.0.0 --port 1010
atau cukup dengan
#flask run



10. Coba Akses
-Buka Internet Browser misalnya Mozilla Firefox atau Microsoft Edge atau Google Chrome ketik
localhost:1010 atau 127.0.0.1:1010 atau bisa juga dengan tambahan http misalnya http://localhost:1010 dan http://127.0.0.1:1010


-Tekan ctrl+c untuk keluar program server development
-Matikan environment dengan
#deactivate





11. Kita akan menggunakan Apache2 bukan server untuk pengembangan (development server) tersebut.
-install libapache2-mod-wsgi-py3
#apt install libapache2-mod-wsgi-py3

-buat file flask-app.wsgi
#nano /home/mmtcomputerkandangan/flasksite/flasksite.wsgi

-isi file kosong tersebut dengan:
import sys
sys.path.insert(0, "/home/mmtcomputerkandangan/flasksite")
from app import app as application

-masuk ke directory /etc/apache2/sites-available
#cd /etc/apache2/sites-available

-buat file kosong flasksite.conf
#nano flasksite.conf
-isi dengan

<VirtualHost *:80>
ServerName IP_AdressPublik_Anda_Misalnya_110.142.35.15
DocumentRoot /home/mmtcomputerkandangan/flasksite/

WSGIDaemonProcess app user=www-data group=www-data threads=5 python-home=/home/mmtcomputerkandangan/flasksite/flask-venv>
WSGIScriptAlias / /home/mmtcomputerkandangan/flasksite/flasksite.wsgi
ErrorLog ${APACHE_LOG_DIR}/flask-error.log
CustomLog ${APACHE_LOG_DIR}/flask-access.log combined

<Directory /home/mmtcomputerkandangan/flasksite>
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Require all granted
</Directory>
</VirtualHost>

-Enable/Aktifkan flasksite.conf tersebut
#a2ensite flasksite.conf

-Periksa syntax penulisan file yang telah dibuat dan pastikan hasilnya OK
#apachectl -t
Jika muncul error

"Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server confi
guration" lakukan enable modul wsgi pada apache2

#a2enmod wsgi


-Restart Apache
#systemctl restart apache2

-Periksa statusnya, pastikan active (running)
#systemctl status apache2


-Proses konfigurasi Flask agar bisa dijalankan di apache2 selesai

12. Ujicoba dengan Internet browser ketik http://localhost/  (bukan lagi http://localhost:1010)




Comments

Popular posts from this blog

Konfigurasi HTTPS (Berkualitas Tinggi) - Debian 8

Komunikasi Data menurut wikipedia