Problembeschreibung:
Wenn ich 127.0.0.1/cgi-bin/test.cgi
in meinen Browser lade, wird meine test.cgi
wie eine Textdatei anstelle einer Python-Datei behandelt.
Ausschluss der Möglichkeit, dass der Fehler mit dem Python-Code zusammenhängt:
Ich kann keinen absichtlichen 500-Fehler erhalten, egal was ich mit dem Python-Code mache.
Und ich habe die CGI-Datei über ausführbar gemacht
sudo chmod +x
.Ich habe dies bereits in früheren Versionen von Ubuntu ohne Probleme getan.
Theorie:
Ich glaube, das Problem liegt in meiner Konfiguration. Unten ist meine Konfiguration von zwei Dateien apache2.conf
und 000-default
.
Ich habe verschiedene Dinge eingefügt, damit meine Konfigurationsdateien bei jeder Gelegenheit funktionieren. Dies ist nur eine Momentaufnahme davon, wie diese beiden Dateien zum Zeitpunkt des Schreibens aussehen.
Vielen Dank im Voraus!
/etc/apache2/apache2.conf
::
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory /home/isaac/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
/etc/apache2/sites-available/000-default
::
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/isaac/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ScriptAlias /cgi-bin/ /home/isaac/www/cgi-bin/
<Directory "/home/isaac/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AddHandler cgi-script .py
AddHandler default-handler .html .htm
</Directory>
sudo a2enmod cgi
?/etc/apache2/conf-enabled/serve-cgi-bin.conf
.Antworten:
Das erste Problem wäre, dass das CGI-Modul nicht aktiviert wurde, sodass Apache nichts als CGI verarbeitet. Aktivieren Sie es:
In Apache2.4 wurde die Konfiguration erheblich bereinigt, und Elemente in der
default
Site-Definition wurden in Konfigurationsdateien in verschobenconf-available
. Dazu gehören unter anderem auch die CGI-bezogenen Konfigurationszeilen, die auf derdefault
Website älterer Versionen zu sehen sind. Diese wurden verschoben/etc/apache2/conf-available/serve-cgi-bin.conf
, was Folgendes enthält:Dies verursacht das zweite Problem. Ändern Sie diese Datei oder deaktivieren Sie diese Konfiguration:
quelle