Mein Freund und ich haben einen Server auf Debian 10 gestartet, auf dem Apache2 läuft. Ich habe eine sehr einfache Website und ein Python-Skript geschrieben, nur um die CGI-Skripte zu testen. Wenn ein Benutzer also ein Formular ausfüllt und auf „Senden“ drückt, sollte eigentlich „Hallo Welt“ angezeigt werden, aber ich erhalte die Fehlermeldung 404, dass „die angeforderte URL auf diesem Server nicht gefunden wurde“. Das Formular befindet sich in /var/www/html/form/index.html und das CGI-Skript in /var/www/html/cgi-bin/hello.py
Python-Skript:
#!/usr/bin/python
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'
HTML Quelltext:
<!DOCTYPE html>
<html lang=en dir="ltr">
<head>
<meta charset="utf-8">
</head>
<body>
<dir class="main">
<form action="../cgi-bin/hello.py" method="get">
<fieldset>
<label for="name">Name</label>
<input type="text" name="name">
<label for="mail">E-Mail</label>
<input type="email" name="email">
<label type="phone" for="phone">Phone number</label>
<input type="text" name="phone">
<input id="submit" class="inputs" type="submit" name="send" value="Wyślij" />
</fieldset>
</form>
</dir>
</body>
</html>
Apache2-Verzeichniskonfiguration:
# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory "/var/www/html/cgi-bin">
AllowOvveride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/html/cgi-bin">
Options All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>