I am trying to deploy my Django application with Apache and mod_wsgi.
I installed and configured them according to following references:- https://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html
https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/modwsgi/
My django project tree - /home/zahlen
mysite
├── db.sqlite3
├── log
│ ├── access.log
│ └── error.log
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── settings.py
│ ├── static
│ ├── templates
│ ├── urls.py
│ ├── views.py
│ ├── wsgi.py
├── places
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ ├── models.py
│ ├── static
│ ├── templates
│ ├── tests.py
│ ├── urls.py
│ ├── views.py
└── static
django is present in /home/zahlen/.local/lib/site-packages
//apache2/apache2.conf
....
....
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIPythonPath /home/zahlen/mysite:/home/zahlen/.local/lib/python2.7/site-packages
<Directory /home/zahlen/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
//apache2/sites-available/000-default.conf VirtualHost Configuration
<VirtualHost *:80>
ServerName www.mysite.com
ServerAlias mysite.com
ServerAdmin [email protected]
Alias /static /home/zahlen/mysite/mysite
<Directory /home/zahlen/mysite/static>
Require all granted
</Directory>
ErrorLog /home/zahlen/mysite/log/error.log
CustomLog /home/zahlen/mysite/log/access.log combined
<Directory /home/zahlen/mysite/mysite/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mysite.com python-path=/home/zahlen/mysite
WSGIProcessGroup mysite.com
WSGIScriptAlias / /home/zahlen/mysite/mysite/wsgi.py
</VirtualHost>
Django and mod_wsgi are configured to use python2.7 . Vitualenv is not used and Apache uses the Event MPM
All of this is on a Ubuntu Server Virtual Machine.
//log/apache2/error.log gives the following line which verifies use of python2.7
....
[Sat Feb 17 02:16:45.475182 2018] [mpm_event:notice] [pid 7282:tid 140680615626624] AH00489: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g mod_wsgi/4.3.0 Python/2.7.12 configured -- resuming normal operations
....
/home/zahlen/mysite/mysite/wsgi.py
import os,sys
sys.path.append('/home/zahlen/mysite')
sys.path.append('/home/zahlen/mysite/mysite')
sys.path.append('/home/zahlen/.local/lib/python2.7/site-packages')
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application()
My browser throws Internal Server Error on the host machine every time i open my site using ip address of the VM
//mysite/log/error.log
[Sat Feb 17 02:13:55.862423 2018] [wsgi:error] [pid 7152:tid 139643385603840] [remote 192.168.56.1:46153] mod_wsgi (pid=7152): Target WSGI script '/home/zahlen/mysite/mysite/wsgi.py' cannot be loaded as Python module.
[Sat Feb 17 02:13:55.862536 2018] [wsgi:error] [pid 7152:tid 139643385603840] [remote 192.168.56.1:46153] mod_wsgi (pid=7152): Exception occurred processing WSGI script '/home/zahlen/mysite/mysite/wsgi.py'.
[Sat Feb 17 02:13:55.862579 2018] [wsgi:error] [pid 7152:tid 139643385603840] [remote 192.168.56.1:46153] Traceback (most recent call last):
[Sat Feb 17 02:13:55.862619 2018] [wsgi:error] [pid 7152:tid 139643385603840] [remote 192.168.56.1:46153] File "/home/zahlen/mysite/mysite/wsgi.py", line 12, in <module>
[Sat Feb 17 02:13:55.862743 2018] [wsgi:error] [pid 7152:tid 139643385603840] [remote 192.168.56.1:46153] from django.core.wsgi import get_wsgi_application
[Sat Feb 17 02:13:55.862781 2018] [wsgi:error] [pid 7152:tid 139643385603840] [remote 192.168.56.1:46153] ImportError: No module named django.core.wsgi
It seems that wsgi.py couldn't import the django package but it is present in /home/zahlen/.local/lib/site-packages/python2.7
directory
Can anyone light me the issue please?