The code.cgi Problem mit Web-Server
#!/usr/bin/env python
import MySQLdb
print "Content-Type: text/html"
print
print "<html><head><title>Books</title></head>"
print "<body>" print "<h1>Books</h1>"
print "<ul>"
connection = MySQLdb.connect(user='me', passwd='letmein', db='my_db') cursor = connection.cursor() cursor.execute(“SELECT name FROM books ORDER BY pub_date DESC LIMIT 10”)
for row in cursor.fetchall():
print "<li>%s</li>" % row[0]
print "</ul>"
print "</body></html>"
connection.close()
Ich speicherte es als test.cgi auf meinen Web-Server. Ich führe es von www.mysite.com/test.cgi vergeblich
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Wie können Sie das Problem lösen?
[Bearbeiten] nach der ersten Antwort
- test.cgi ausführbar ist (ich laufe $ chmod + x test.cgi)
- ich Apache verwenden.
- Ich habe dies in. Bashrc exportieren PATH = $ {Pfad}: ~/bin
- Python-Modul MySQLdb ist installiert.
- Der Code enthält keine intelligenten Anführungszeichen.
[Bearbeiten] nach der zweiten Antwort
Sie bekommen diesen Fehler, weil Sie haben nicht die MySQLdb Modul installiert , die Python muss eine MySQL-Datenbank sprechen
Ich habe MySQLdb auf meinem System installiert. Das Modul funktioniert, da ich sie importieren kann. Allerdings bekomme ich immer noch den gleichen Fehler, wenn ich ins www. [Mysite] .com/test.cgi gehe.
[Bearbeiten]
Ich bin nicht sicher über die Fragen
Sind die connect() Parameter korrekt? Läuft MySQL unter localhost am Standardport?
Ich laufe MySQL auf meinem Server. Ist die Frage zu den connect() Parametern hier relevant?
Ist die SELECT-Anweisung korrekt?
Sie meinen, ob ich meine SQL-Anweisungen wie SELECT-Anweisung richtig? Ich habe noch keine SQL-Abfragen verwendet. Brauche ich sie hier?
Froh, dass Sie die "intelligente Zitate" behoben. Hier ist eine ausgezeichnete Lektüre zu dem Thema, über das ich gerade gestolpert: http: //blogs.msdn .com/oldnewthing/archive/2009/02/25/9443404.aspx –
@David: Danke für den Link! Wissen Sie, wie Sie überprüfen können, dass die Zeilenenden LF sind? Wikipedia sagt uns, dass LF U + 000A ist. Der Vorschlag von Therms könnte die Lösung für das zweite Problem sein: –