You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python CGI导入MySQL模块触发Internal Server Error问题求助

解决Python CGI导入MySQL模块引发的Internal Server Error问题

一、修复脚本基础错误

  • 移除无效Shebang行:脚本中#!/usr/bin/mysql是错误的,Shebang只能指定Python解释器,保留第一行#!/usr/bin/python3即可。
  • 修正导入语句:import mysql不符合当前主流MySQL驱动的导入规范,需根据安装的驱动调整(比如官方驱动需写成import mysql.connector)。

二、安装正确的MySQL Python驱动

根据系统选择安装方式,必须用sudo执行,确保模块安装到Apache运行的全局Python环境中:

Debian/Ubuntu系

sudo apt-get update
sudo apt-get install python3-mysql.connector
# 或用pip安装
sudo pip3 install mysql-connector-python

RHEL/CentOS系

sudo yum install python3-mysql-connector
# 或用pip安装
sudo pip3 install mysql-connector-python

三、验证模块可用性

切换到Apache运行用户(通常是www-data),确认模块能被识别:

sudo -u www-data python3 -c "import mysql.connector; print('模块可用')"

无报错则说明模块已被Apache的Python环境加载。

四、调整脚本权限

确保Apache用户能读取并执行脚本:

chmod 755 /var/www/html/getData.py
chown www-data:www-data /var/www/html/getData.py

五、修正后的示例脚本

#!/usr/bin/python3
import cgi, cgitb
import mysql.connector

# 启用CGI调试,浏览器可直接查看错误详情
cgitb.enable()

print("Content-Type: text/html\n")
print("<html>")

form = cgi.FieldStorage()
first_name = form.getvalue('first_name')
last_name  = form.getvalue('last_name')

print(f"Hello {first_name} {last_name}")

# 数据库操作示例
try:
    conn = mysql.connector.connect(
        host='localhost',
        user='你的数据库用户名',
        password='你的数据库密码',
        database='你的数据库名'
    )
    cursor = conn.cursor()
    insert_query = "INSERT INTO users (first_name, last_name) VALUES (%s, %s)"
    cursor.execute(insert_query, (first_name, last_name))
    conn.commit()
    print("<p>数据插入成功</p>")
    
    cursor.close()
    conn.close()
except Exception as e:
    print(f"<p>数据库操作失败: {str(e)}</p>")

print("</html>")

内容的提问来源于stack exchange,提问作者user2011902

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:55:10