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 configuration" 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
Post a Comment