#!/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()
我将它作为 test.cgi 保存到我的网络服务器。我通过 www.mysite.com/test.cgi 运行它没有成功
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
你怎么能解决这个问题?
[编辑]在第一个答案之后
- test.cgi 是可执行的(我运行 $ chmod +x test.cgi)
- 我使用阿帕奇。
- 我在 .bashrc 中有这个 export PATH=${PATH}:~/bin
- Python 模块 MySQLdb 已安装。
- 该代码没有智能引号。
[编辑]在第二个答案之后
您收到该错误是因为您尚未安装 Python 需要与 MySQL 数据库通信的 MySQLdb 模块
我将 MySQLdb 安装到我的系统中。该模块有效,因为我可以导入它们。但是,当我访问 www.[mysite].com/test.cgi 时,我仍然遇到同样的错误。
[编辑]
我不确定这些问题
connect() 参数是否正确?MySQL 是否在默认端口的 localhost 上运行?
我在我的服务器上运行 MySQL。关于 connect() 参数的问题在这里是否相关?
SELECT 语句是否正确?
你的意思是我的 SELECT 语句等 SQL 语句是否正确?我还没有使用任何 SQL 查询。我在这里需要它们吗?