提问人:Saul Solis 提问时间:11/17/2023 更新时间:11/17/2023 访问量:17
尝试使用 apache cgi 打开我的 python 文件时出现 404 错误
I get a 404 error while trying to open my python file using apache cgi
问:
我是 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,停止了它并从头开始,恢复时根本没有错误。
答:
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>
评论