I want to deploy my Django project to EC2 server. I installed mod_wsgi.
And made configuration like in the tutorial of django.
I am getting the following:
Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration
What is the reason? mod_wsgi is not installed correctly?
LoadModule wsgi_module libexec/httpd/mod_wsgi.so
LoadModule alias_module libexec/httpd/mod_alias.so
WSGIScriptAlias / /usr/local/apache2/htdocs/mysite/mysite/wsgi.py
WSGIPythonPath /usr/local/apache2/htdocs/mysite/mysite
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
The problem is that mod_wsgi
is not installed properly.
Solution (using Apache 2):
install Apache:
$ sudo apt-get install apache2
install libapache2-mod-wsgi
:
$ sudo apt-get install libapache2-mod-wsgi
And this should work fine.
The error specifically indicates that mod_wsgi is not being loaded into Apache.
In what file is:
LoadModule wsgi_module libexec/httpd/mod_wsgi.so
Did you enable the mod_wsgi module with appropriate Linux distro management command so that it will be loaded if you used distro binary packages for mod_wsgi?
just to add, How I solved my problem if you don't know the location of the modules just search for them
locate mod_alias.so
then you may get output like
/usr/lib/apache2/modules/mod_alias.so
then you can add that location in your config file
LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so
I just encountered the very same issue on openSUSE 12.2, with apache 2.2.
Even if wsgi is installed, it is a good idea to check if it has been activated. What I mean is this:
#outputs a list of registered modules
/usr/sbin/httpd2 -M
If wsgi_module (shared)
does not appear, add wsgi
to the variable APACHE_MODULES
, inside the file /etc/sysconfig/apache2
This way I could avoid altogether the line LoadModule
from httpd.conf.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With