Pertanyaan :
Bagaimana menjalankan Flask Python di cPanel?
Tersedia untuk :
- cPanel Shared Hosting Beginner
- cPanel Shared Hosting Plus
- cPanel Shared Hosting Pro
- cPanel Shared Hosting Max
Jawaban :
Akses ke cPanel terlebih dahulu dan login. Pastikan Anda sudah punya akses terminal di cPanel, jika belum silakan request dengan email ke support@exabytes.co.id untuk mengaktifasi terminal ssh.
Kurang lebih tampilannya seperti ini :

Oke, sekarang berlanjut, kita akan membuka Setup Python App dari pencarian Dashboard utama cPanel.

Kemudian klik Create Application.
Sekarang mari kita ubah versi phyton ke versi yang di rekomendasikan.

Ada beberapa kolom yang bisa kalian isi, diantaranya :
- Application root : Isikan nama aplikasi folder anda BUKAN public_html,
- contohnya seperti seperti app.
- Application URL : Alamat website dimana kamu bisa memproses project.
- Application startup : Bisa kosongkan saja.
- Application Entry apoint : Bisa kosongkan saja.
- Lalu klik Create.
Ketika sudah di klik Create, Anda akan diarahkan ke aplikasi yang baru saja dibuat dan Anda bisa lihat system tersebut mulai mengisi otomatis ketika dipilih.
Pergi ke terminal dan masukkan virtual environment. Instruksinya seperti di bawah ini.

Anda bisa klik warna biru di atas, dimana otomatis copy & paste, atau ketik dengan format berikut :
source /home/to/apps/virtualenv/version/bin/activate && cd /path/to/dir
Kemudian dilanjutkan install flask menggunakan pip.
[app1eth0@sc131 ~]$ source /home/app1eth0/virtualenv/app/3.11/bin/activate && cd /home/app1eth0/app
((app:3.11)) [app1eth0@sc131 app]$ ls
passenger_wsgi.py public tmp
((app:3.11)) [app1eth0@sc131 app]$ pip install flask
Collecting flask
Downloading flask-3.1.2-py3-none-any.whl (103 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.3/103.3 kB 3.9 MB/s eta 0:00:00
Collecting blinker>=1.9.0 (from flask)
Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)
Collecting click>=8.1.3 (from flask)
Downloading click-8.3.1-py3-none-any.whl (108 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.3/108.3 kB 6.7 MB/s eta 0:00:00
Collecting itsdangerous>=2.2.0 (from flask)
Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)
Collecting jinja2>=3.1.2 (from flask)
Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.9/134.9 kB 5.6 MB/s eta 0:00:00
Collecting markupsafe>=2.1.1 (from flask)
Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
Collecting werkzeug>=3.1.0 (from flask)
Downloading werkzeug-3.1.4-py3-none-any.whl (224 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 225.0/225.0 kB 8.2 MB/s eta 0:00:00
Installing collected packages: markupsafe, itsdangerous, click, blinker, werkzeug, jinja2, flask
Successfully installed blinker-1.9.0 click-8.3.1 flask-3.1.2 itsdangerous-2.2.0 jinja2-3.1.6 markupsafe-3.0.3 werkzeug-3.1.4
[notice] A new release of pip is available: 23.1 -> 25.3
[notice] To update, run: pip install --upgrade pip
Sekarang flask sudah berhasil terpasang, namun terlihat ada notifikasi apakah pip ingin di upgrade atau tidak. Kita bisa upgrade ini nanti.
Sekarang ke folder aplikasi Anda. Sebelumnya kita menamainya dengan app. Kemudian buat file baru di dalam folder tersebut dengan nama ini.py dari terminal Anda.
nano ini.py
Kemudian isikan script ini.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'INI TEST SAJA FLASK'
Sudah selesai.
Sekarang mari modifikasi file yang bernama passenger_wsgi.py, sebelum melakukan itu kita backup terlebih dahulu.
cp -p passenger_wsgi.py passenger_wsgi.py-old
Kemudian hapus semua isi file yang ada pada passenger_wsgi.py kemudian gantikan hanya dengan baris ini saja.
from ini import app as applicationMengapa menggunakan ini ? Karena sebelumnya kita sudah membuat script ini.py sebagai test file. Oleh karena itu, kita harus definisikan ini sebagai app aplication.
Jika sudah, restart aplikasi dari cPanel interface. Outputnya kurang lebih seperti ini, dan aplikasi Anda kini sudah aktif.
