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

HTML页面调用CGI脚本无法执行 基于维基示例编写运行异常求排查

CGI表单提交后脚本无法执行问题排查方案

以下是基于提供的代码和场景整理的完整排查解决路径:

关联代码参考

HTML前端代码

<!DOCTYPE html>
<html>
 <body>
  <form action="add.cgi" method="POST">
   <fieldset>
     <legend>Enter two numbers to add</legend>
     <label>First Number: <input type="number" name="num1"></label><br/>
     <label>Second Number: <input type="number" name="num2"></label><br/>
   </fieldset>
   <button>Add</button>
  </form>
 </body>
</html>

后端CGI(Python)代码

#!/usr/bin/env python3
import cgi, cgitb
cgitb.enable()
input_data = cgi.FieldStorage()
print('Content-Type: text/html') # HTML is following
print('')                         # Leave a blank line
print('<h1>Addition Results</h1>')
try:
    num1 = int(input_data["num1"].value)
    num2 = int(input_data["num2"].value)
except:
    print('<output>Sorry, the script cannot turn your inputs into numbers (integers).</output>')
    raise SystemExit(1)
print('<output>{0} + {1} = {2}</output>'.format(num1, num2, num1 + num2))

故障排查步骤

  • 检查脚本权限:服务器端需给add.cgi文件赋予可执行权限,执行命令chmod 755 add.cgi即可,同时确认文件所属用户和用户组与Apache运行用户匹配,避免权限不足无法调用。
  • 验证Python解释器路径:脚本首行的#!/usr/bin/env python3需要匹配服务器实际的Python3路径,可在服务器终端执行which python3获取绝对路径替换首行内容,比如如果返回结果是/usr/bin/python3,就把首行改为#!/usr/bin/python3。
  • 确认Apache CGI模块已开启:终端执行apache2ctl -M | grep cgi(CentOS系统替换为httpd -M | grep cgi),如果返回结果中没有cgi_module (shared),则执行a2enmod cgi开启模块,之后重启Apache服务生效。
  • 核对Apache配置项:
    • 存放add.cgi的目录对应的配置段中必须添加Options +ExecCGI配置,允许该目录执行脚本
    • 配置中需要添加AddHandler cgi-script .cgi .py规则,将.cgi后缀文件关联到CGI处理程序
    • 若使用了ScriptAlias配置,需确保访问路径和脚本实际存放路径的映射关系正确
  • 本地测试脚本有效性:在服务器终端直接执行python3 add.cgi,检查是否有语法报错、缩进错误或者依赖缺失,正常执行应当输出标准的HTTP头和HTML内容。
  • 查看Apache错误日志定位问题:Apache错误日志默认存放路径为/var/log/apache2/error.log(CentOS系统为/var/log/httpd/error.log),日志中的具体报错信息可以直接定位故障根源,比如路径不存在、权限不足、脚本执行异常等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 21:03:02