Deploy Flask App to the Apache2 Web Server
--
Install Apache2
sudo apt install apache2
Install PHP (apabila belum ada service php)
https://linuxize.com/post/how-to-install-php-on-ubuntu-18-04/
Install Mysql Server
sudo apt install mysql-server
sudo mysql_secure_installation
Install Phpmyadmin
sudo apt install phpmyadmin
Deploy Flask
pada bagian install WSGI gunakan WSGI python versi 3 dari tutorial ini:
sudo apt-get install libapache2-mod-wsgi-py3
Dan apabila virtual env belum terinstall, bisa mengikuti tutorial ini:
Full Deploy, tapi ingat gunakan python3
Issue Truncated or oversized response headers received from daemon process using Django, karena didalam aplikasi menggunakan library seperti numpy dan scipy. sehingga itu membuat sistem overload oversize. Untuk mengatasi hal tersebut WSGI menyediakan solusi:
Yaitu menambahkan
WSGIApplicationGroup %{GLOBAL}
Setting untuk HTTPS juga
Contoh Konfigurasi
ugetapp.conf (apache2)
<VirtualHost *:80>
ServerAdmin webmaster@df.hdrc.pens.ac.id
ServerName www.df.hdrc.pens.ac.id
ServerAlias df.hdrc.pens.ac.id
ErrorLog /var/www/uget/logs/error.log
CustomLog /var/www/uget/logs/access.log combined
WSGIDaemonProcess ugetapp user=www-data group=www-data threads=5
WSGIProcessGroup ugetapp
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /var/www/FLASKAPPS/ugetapp/ugetapp.wsgi
Alias /static /var/www/FLASKAPPS/ugetapp/static/
<Directory /var/www/FLASKAPPS/ugetapp/static/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Contoh Konfigurasi Setelah di Setting HTTPS
WSGIDaemonProcess uget user=www-data group=www-data threads=5
WSGIProcessGroup uget
WSGIApplicationGroup %{GLOBAL}
<VirtualHost *:80>
ServerAdmin webmaster@df.hdrc.pens.ac.id
ServerName www.df.hdrc.pens.ac.id
ServerAlias df.hdrc.pens.ac.id
ErrorLog /var/www/uget/logs/error.log
CustomLog /var/www/uget/logs/access.log combined
WSGIScriptAlias / /var/www/FLASKAPPS/ugetapp/ugetapp.wsgi
Alias /static /var/www/FLASKAPPS/ugetapp/static/
<Directory /var/www/FLASKAPPS/ugetapp/static/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
yang terkait dengan WSGI diletakan diluar Block port. karena akan muncul issue penggunaan nama app wsgi duplicate
Terakhir jangan lupa untuk memberikan permisson pada tiap-tiap folder dan file yang akan diakses oleh program
https://www.educative.io/edpresso/how-to-resolve-the-permission-denied-error-in-linux