Я преподаю на уроке 11 класса, как писать динамические веб-страницы, используя lighttpd и python в Ubuntu.
В моем / var / www / cgi-bin у меня есть один файл Python (testing.py), который выполняется, и я вижу вывод в браузере. У меня есть другой файл Python (greet.py), который должен обрабатывать форму (form1), но я получаю «500 - внутренняя ошибка сервера». Это не 404, поэтому я считаю, что сервер обращается к (файл greet.py), но у него возникли некоторые проблемы.
Файл /var/www/html/index.html:
<!DOCTYPE html>
<html>
<title>This is from the html file</title>
<body>Testing<br>
<a href="/cgi-bin/testing.py">This should show the output of python file in /var/www/cgi-bin </a><br>
<a href="form1.html">Form1</a>
</body>
</html>
Файл /var/www/cgi-bin/testing.py:
#! /usr/bin/python
print("<!DOCTYPE html>")
print("<html>")
print("<title>")
print("Testing from cgi-bin")
print("</title>")
print("<body>")
print("This is testing from /var/www/cgi-bin/")
print("</body>")
print("</html>")
Файл /var/www/html/form1.html:
<!DOCTYPE html>
<html>
<title>Form Testing </title>
<body>
<form method="POST" action="/cgi-bin/greet.py">
Name: <input type="text" name="fname">
<input type="submit" value="submit">
</form>
</body>
</html>
Это файл /var/ww/cgi-bin/greet.py:
#!/usr/bin/python
form=cgi.FieldStorage()
name = form['fname'].value
print("<!DOCTYPE html>")
print("<html>")
print("<title> greet - form processed</title>")
print("<body>")
print("Hello "+name.title())
print(<"/body>")
print("</html>")
Я вижу вывод /var/www/cgi-bin/testing.py.
Но когда я отправляю форму1, я получаю «500 - Внутренняя ошибка сервера».
Есть что-то, чего мне не хватает. Оба файла в cgi-bin имеют одинаковые права доступа.
Заранее спасибо.
sonip