I'm trying to deploy my Django app using Apache2 on a raspberry pi 4B
running raspbian 10
My project path looks like this
/home/pi/Andola
Inside that folder I created a Virtual environment called MyDjangoEnv
running python 3.8.2 and Django 3.0.3 so the path to the virtual
environment looks like this
/home/pi/Andola/myDjangoEnv
My wsgi.py file lives inside this folder: /home/pi/Andola/AnDjo/wsgi.py ,
next to the settings.py , __init__.py , etc
I copied the file 000-default.conf on /etc/apache2/sites-available to
another one named django_project.conf in order to configure my own site. I
configured it according to Django documentation and my new file looks like
this:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
Alias /static /home/pi/Andola/static
<Directory /home/pi/Andola/static>
Require all granted
</Directory>
Alias /media /home/pi/Andola/media
<Directory /home/pi/Andola/media>
Require all granted
</Directory>
<Directory /home/pi/Andola/AnDjo>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/pi/Andola/AnDjo/wsgi.py
WSGIDaemonProcess django_app python-path=/home/pi/Andola/
python-home=/home/pi/Andola/myDjangoEnv
WSGIProcessGroup django_app
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
I think I gave the propper permissions to media folder and changed the
ownership of my project folder (Andola) to www-data.
My Django application runs totally fine when I use python manage.py
runserver but whenever I try to run apache it gives me the 500 Internal
Server Error and the next shows up in the error log
[Mon Nov 30 20:47:16.396524 2020] [mpm_event:notice] [pid 10724:tid
3069383184] AH00491: caught SIGTERM, shutting down
[Mon Nov 30 20:47:16.540219 2020] [mpm_event:notice] [pid 12812:tid
3069309456] AH00489: Apache/2.4.38 (Raspbian) mod_wsgi/4.6.5 Python/3.7
configured -- resuming normal operations
[Mon Nov 30 20:47:16.540623 2020] [core:notice] [pid 12812:tid 3069309456]
AH00094: Command line: '/usr/sbin/apache2'
[Mon Nov 30 20:47:20.764437 2020] [wsgi:error] [pid 12813:tid 3038991392]
[remote ::1:52238] mod_wsgi (pid=12813): Failed to exec Python script file
'/home/pi/Andola/AnDjo/wsgi.py'.
[Mon Nov 30 20:47:20.764696 2020] [wsgi:error] [pid 12813:tid 3038991392]
[remote ::1:52238] mod_wsgi (pid=12813): Exception occurred processing WSGI
script '/home/pi/Andola/AnDjo/wsgi.py'.
[Mon Nov 30 20:47:20.765543 2020] [wsgi:error] [pid 12813:tid 3038991392]
[remote ::1:52238] Traceback (most recent call last):
[Mon Nov 30 20:47:20.767301 2020] [wsgi:error] [pid 12813:tid 3038991392]
[remote ::1:52238] File "/home/pi/Andola/AnDjo/wsgi.py", line 12, in
<module>
[Mon Nov 30 20:47:20.767372 2020] [wsgi:error] [pid 12813:tid 3038991392]
[remote ::1:52238] from django.core.wsgi import get_wsgi_application
[Mon Nov 30 20:47:20.767491 2020] [wsgi:error] [pid 12813:tid 3038991392]
[remote ::1:52238] ModuleNotFoundError: No module named 'django'
I ran the scripts here
https://modwsgi.readthedocs.io/en/develop/user-guides/checking-your-installation.html
getting
the next results:
Python Installation in use:
sys.version = '3.7.3 (default, Jul 25 2020, 13:03:44) \n[GCC 8.3.0]'
sys.prefix = '/home/pi/Andola/myDjangoEnv'
Python module search path:
sys.path = ['/home/pi/Andola', '/usr/lib/python37.zip',
'/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload']
Embedded or Daemon Mode
mod_wsgi.process_group = 'django_app'
Subinterpreter Being Used
mod_wsgi.application_group = '192.168.1.70|'
I can see that wsgi might not be using myDjangoEnv and a bad configuration
is happening but as this is the first time I'm using wsgi and also the
first time trying to make a website I've been kind of lost for the last few
days /::
--
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/modwsgi/0ecac6e4-53ad-43ad-ab9e-b498775a3275n%40googlegroups.com.