在WAMP Server上配置Python 3.6运行.py脚本触发500错误如何解决?
解决WAMP运行Python CGI脚本500错误的方案
1. 修正Python脚本的CGI规范格式
CGI协议要求脚本必须先输出合法的HTTP响应头,且响应头和正文之间必须用空行分隔;同时Windows环境下Apache需要通过脚本首行的shebang声明找到Python解释器,修改你的index.py内容如下:
#!"C:\Program Files\Python36\python.exe" print("Content-Type: text/html; charset=utf-8") # 下面这行是空行,必须保留,用于分隔响应头和正文 print() print("hello world")
注意:shebang行的路径加双引号是为了适配路径里的空格,避免Apache识别失败
2. 修正Apache httpd.conf配置
你当前的配置存在权限覆盖错误,同时如果Python脚本放在网站根目录而非cgi-bin目录,需要额外配置根目录的执行权限,修改后的配置如下:
AddHandler cgi-script .cgi .py <Directory "${SRVROOT}/cgi-bin"> AllowOverride None # 原配置的Options None会禁用执行权限,改为开启CGI执行 Options +ExecCGI Require all granted </Directory> # 若你的Python脚本放在网站根目录(默认是${SRVROOT}/htdocs),新增如下配置 <Directory "${SRVROOT}/htdocs"> AllowOverride None Options +Indexes +FollowSymLinks +Multiviews +ExecCGI Require all granted </Directory>
3. 生效配置并验证
- 保存修改后的httpd.conf文件,重启WAMP的Apache服务
- 确保你的
index.py文件存储在上述配置的对应目录下,Windows下给文件开通Users组的「读取和运行」权限 - 重新访问
http://localhost/index.py即可看到输出内容
如果修改后仍报错,可查看Apache错误日志(WAMP面板可直接打开错误日志文件),根据具体报错信息定位问题
内容的提问来源于stack exchange,提问作者user3653474
相关产品推荐
相关产品推荐

