尝试使用 apache cgi 打开我的 python 文件时出现 404 错误

I get a 404 error while trying to open my python file using apache cgi

提问人:Saul Solis 提问时间:11/17/2023 更新时间:11/17/2023 访问量:17

问:

我是 python 后端开发的新手,我正在尝试设置一个 apache 以使用 cgi-bin 和一个简单的 python 文件。

这是我的apache2.conf(我添加了以下内容):

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
   AddHandler cgi-script .py
</Directory>

<Directory "/var/www/cgi-bin">
Options All
</Directory>

这是我的 python 文件,它被称为 hello.py,它位于 /var/www/cgi-bin 中:

#!/usr/bin/python3

print ("Content-type:text/html\r\n\r\n")
print ('<html>')
print ('<head>')
print ('<title>Hello Word - First CGI Program</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word! This is my first CGI program</h2>')
print ('</body>')
print ('</html>')

我的apache已启动并运行,但是当我转到:http://localhost/cgi-bin/hello.py 时,我收到以下错误:

未找到 在此服务器上找不到请求的 URL。

Apache/2.4.54 (Ubuntu) 服务器位于 localhost 端口 80

我已经反弹了apache,停止了它并从头开始,恢复时根本没有错误。

Python Apache CGI

评论

0赞 PandaSurge 11/17/2023
尝试保存网站的 .html 版本并另存为 index.html,然后查看页面是否加载。这将有助于缩小问题范围。将 html 文件保存在 www 文件夹中

答:

0赞 PandaSurge 11/17/2023 #1

您的 Apache 服务器似乎配置不正确,因此不允许执行 CGI 脚本。请务必检查您的错误日志、文件权限并检查您的目录路径是否存在。此外,如果您使用的是虚拟主机,请检查虚拟主机的配置是否允许使用 CGI 脚本

2赞 Saul Solis 11/17/2023 #2

谢谢,这就是我修复它的方式:/etc/apache2/apache2.conf

#########     Adding capaility to run CGI-scripts #################
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py

/etc/apache2/conf-available/serve-cgi-bin.conf更改自:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Require all granted
</Directory>   

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin/">
    AllowOverride None
    Options +ExecCGI
</Directory>