Deploy Django on Apache2
Install needed packages
sudo apt-get install python3 python3-pip apache2 libapache2-mod-wsgi-py3 python3-virtualenv snapd -y
Create virtual environment
Go to /var/www/ and create the dir to your project
virtualenv myprojectenv
Then activate the environment
source myprojectenv/bin/activate
Install pip packages and run all migrations
Install Django and all packages needed
pip install django
Configure the Apache web server
<VirtualHost *:80> ServerAdmin your@mail.com ServerName yourdomain.com # or remove it DocumentRoot /var/www/yourproject ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/yourproject/yourproject> <Files wsgi.py> Require all granted </Files> </Directory> WSGIDaemonProcess anything python-home=/var/www/yourproject/projectenv python-path=/var/www/yourproject WSGIProcessGroup anything WSGIScriptAlias / /var/www/yourproject/yourproject/wsgi.py </VirtualHost>
Configure SSL on Apache
To enable ssl on your site you must to have a domain and the domain must to be pointed to your server ip.
Via snap install the certbot
snap install certbot --classic
Then use the command certbot to configure all your domain.