Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration
First you might want to check the config using
/etc/init.d/httpd configtest
or sudo apache2ctl -t
and also check if the module is enabled.
sudo a2enmod wsgi
![RevolutionTech](https://i.stack.imgur.com/1Qqp5.jpg?s=256&g=1)
RevolutionTech
Updated on July 09, 2022Comments
-
RevolutionTech almost 2 years
I am trying to set up a Django server for production. In my browser, if I type in the IP address that corresponds to my server, I get the default Apache page "It works!" instead of a Django-related page.
I have modified httpd.conf to include the line:
WSGIScriptAlias / /var/the-1/django/The1/apache/django.wsgi
And I created the actual file django.wsgi, which looks like:
import os import sys path = '/var/the-1/django/The1' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'The1.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
But when I restart the server, I receive the error:
AH00526: Syntax error on line 506 of /usr/local/apache2/conf/httpd.conf: Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration
when I try to restart Apache using:
/usr/local/apache2/bin/apachectl -k restart
However, if I use the command:
sudo service apache2 restart
I don't receive the error (though I think they're not really doing the same thing).
If I run apache2ctl -M, the following two lines appear (among others):
alias_module (shared) wsgi_module (shared)
so I believe those modules are running correctly.
I have already tried completely uninstalling and reinstalling libapache2-mod-wsgi. The server I am working on is a Raspberry Pi running Raspbian. This is my first time setting up a server, so I know very little about Apache or how to set up Django.
EDIT: Below is my httpd.conf file (note that because the actual file is so long, I have removed all comments):
ServerRoot "/usr/local/apache2" Listen 80 LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule access_compat_module modules/mod_access_compat.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule reqtimeout_module modules/mod_reqtimeout.so LoadModule filter_module modules/mod_filter.so LoadModule mime_module modules/mod_mime.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule headers_module modules/mod_headers.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule version_module modules/mod_version.so LoadModule unixd_module modules/mod_unixd.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule dir_module modules/mod_dir.so LoadModule alias_module modules/mod_alias.so LoadModule wsgi_module modules/mod_wsgi.so <IfModule unixd_module> User daemon Group daemon </IfModule> ServerAdmin [email protected] ServerName [SERVER_IP_ADDRESS]:80 # Removed for security reasons #<Directory /> # AllowOverride none # Require all denied #</Directory> DocumentRoot "/usr/local/apache2/htdocs" <Directory "/usr/local/apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "logs/error_log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access_log" common </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" </IfModule> <IfModule cgid_module> </IfModule> <Directory "/usr/local/apache2/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> <VirtualHost *:80> ServerName [SERVER_IP_ADDRESS]:80 # Removed for security reasons WSGIScriptAlias / /var/the-1/django/The1/apache/django.wsgi <Directory /var/the-1/django/The1/apache> ###<Files django.wsgi> Order allow,deny Allow from all ###</Files> </Directory> </VirtualHost>
EDIT 2 (Solution): There were some problems with my above config file. I was missing a LoadModule line for mod_wsgi.so and I also had to comment out one of the sections. The comments in the first solution go through it a bit.