Ungültiger Befehl 'WSGIScriptAlias", vielleicht falsch geschrieben oder durch ein Modul nicht im Lieferumfang enthalten in der server-Konfiguration
Ich versuche zum einrichten einer Django-server für die Produktion. In meinem browser, wenn ich geben Sie die IP-Adresse entspricht meinem server, erhalte ich die Standard-Apache-Seite "It works!" statt einer Django-bezogene Seite.
Habe ich geändert httpd.conf um folgende Zeile:
WSGIScriptAlias //var/the-1/django/The1/apache/django.wsgi
Und ich habe die eigentliche Datei django.wsgi, die aussieht wie:
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()
Aber wenn ich den server neu starten, erhalte ich die Fehlermeldung:
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
wenn ich versuche, den Apache neu starten mit:
/usr/local/apache2/bin/apachectl -k restart
Jedoch, wenn ich den Befehl:
sudo service apache2 restart
Ich nicht die Fehlermeldung (obwohl ich glaube, Sie sind nicht wirklich die gleiche Sache zu tun).
Wenn ich apache2ctl -M, die folgenden zwei Zeilen angezeigt (unter anderem):
alias_module (shared)
wsgi_module (shared)
also ich glaube, dass die Module ordnungsgemäß ausgeführt werden.
Ich habe bereits versucht komplett zu deinstallieren und neu zu installieren libapache2-mod-wsgi. Der server dem ich arbeite, ist ein Raspberry Pi läuft Raspbian. Dies ist mein erstes mal, einen server einzurichten, so weiß ich sehr wenig über Apache oder zum einrichten Django.
BEARBEITEN: Unten ist meine httpd.conf-Datei (beachten Sie, dass, weil die eigentliche Datei ist so lang, ich habe entfernt alle Kommentare):
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 you@example.com
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 (Lösung): Es wurden einige Probleme mit meinem obigen config-Datei. Mir fehlte eine LoadModule-Zeile für mod_wsgi.so, und ich hatte auch einen Kommentar aus einer der Sektionen. Die Kommentare in der ersten Lösung durch die es ein bisschen.
InformationsquelleAutor RevolutionTech | 2014-01-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst möchten Sie vielleicht zu prüfen, die config mit
bzw.
sudo apache2ctl -t
und auch prüfen, ob das Modul aktiviert ist.
Wenn diese in Ordnung sind, können Sie bitte teilen Sie Ihre Apache-Konfiguration ? und auch können Sie starten, indem Sie explizit die Bereitstellung der Pfad zur config-Datei (verwenden Sie die option-f auf apachectl )?
"sudo /usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf -k restart" führt zu genau denselben Fehler. Ich habe meine httpd.conf-Datei-Referenz (alle Kommentare entfernt).
Sie wissen, was? Wenn ich nur gepostet httpd.conf-Datei mit den Kommentaren entfernt, bemerkte ich, dass mod_wsgi.so war nicht importiert. Ich freue mich, dass jetzt in...
Ich habe es funktioniert! 😀 Mein zweites problem war, dass früher in der httpd.conf-Datei, dort war ein <Directory> Kapitel, die blockiert den Zugriff auf '/', das war das überschreiben später. Ich habe gerade kommentiert, dass aus und voila!
InformationsquelleAutor Anup