Also entweder erwarte ich was falsches von den Anbindungen oder die Anleitungen im Netz sind müll.
Was ich mich erwarte ist sowas wie man bei php hat. Also:
<HTML Code>
<?python
<Python Code
?>
<HTML Code>
Oder aber sowas:
<in Python>
print "<HTML Code>"
<Python Befehle>
print ausgabe von Python Befehle
print "<HTML Code>"
Bei WSGI in der Anleitung wird ein "einfaches" Programm als Beispiel gezeigt:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Was ist das? Das einzige was ich sehen kann ist das "Hello Word!" irgendwohin zurückgegeben wird. Wohin? Wer hat die Funktion aufgerufen? Was sind das für Parameter? Warum werden die Headerdaten in eine Variable gespeichert aber nicht zurückgegeben? Wozu so kompliziert wenn ich nur einen Text anzeigen will...
Das war eigentlich der Grund warum ich kein Framework nutzen will. Ich möchte einfach nur die print Anweisung(+natürlich Daten input von einer Textbox mit einem Senden Knopf) benutzen und mich nicht erst vorher in einer zweiten Sprache(Schon klar das das weiterhin Python ist aber mit eigenen neuen Funktionen) einlesen.
Whitie schrieb@Zondan: Für Deine Zwecke sollte CGI vollkommen reichen. Du musst dem Apachen nur sagen, das er .py oder .cgi ausführen soll und den Shebang richtig setzen. Beispielkonfigurationen finden sich haufenweise im Netz.
Und was muss ich dann einstellen damit es funktioniert?
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# ScriptAlias /cgi-bin /var/www/cgi-bin
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# AddHandler mod_python .py
# AddHandler cgi-script .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Wenn ich die Zeile "AddHandler cgi-script .py" aktiviere geht es trotzdem nicht.
Bei einer Datei mit dem Inhalt:
#!/usr/bin/python
print "hallo"
wird die Datei einfach nur runtergeladen.
Edit: Korrektur die Datei wird dann nicht runtergeladen sondern es kommt die nette Fehlermeldung:
Forbidden
You don't have permission to access /cgi-bin/test.py on this server.
Zugriffsrechte sind jedoch auf 755 und der Shebang stimmt. Übers Terminal ausführen geht auch.