【发布时间】:2022-01-25 12:19:54
【问题描述】:
这是this 的重复问题,但没有一个答案对我有用。我对此做了很多研究,完全被难住了。
我正在运行一个名为/var/www/cgi/test.py 的超级简单的python 脚本:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import cgitb
print('Content-Type: text/html; charset=utf-8\n')
print("Hello world")
但是,当我尝试通过我的服务器访问它时:https://server.com/cgi/test.py 我收到以下消息:
这显然不能告诉我太多,所以我检查了/var/log/apache2/error.log文件,发现如下:
[Tue Jan 25 11:55:10.622681 2022] [cgi:error] [pid 29052] [client REDACTED] AH01215: (8)Exec format error: exec of '/var/www/cgi/test.py' failed: /var/www/cgi/test.py
[Tue Jan 25 11:55:10.623144 2022] [cgi:error] [pid 29052] [client REDACTED] End of script output before headers: test.py
根据我的在线研究,我尝试并完成了以下操作:
- 我已经在
/etc/apache2/apache2.conf的apache 配置文件中添加了必要的配置行。它看起来如下所示(我最初只有ScriptAlias,因为我很确定这就是所需要的,但它不起作用,所以我也添加了<Directory>配置:
# work with the default configuration.
ScriptAlias /cgi/ /var/www/cgi/
<Directory "/var/www/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi .py
</Directory>
# Global configuration
#
"/etc/apache2/apache2.conf" 235L, 7355C
- 在更改配置文件后使用
sudo service apache2 restart重新启动 apache - 将
test.py的权限更改为chmod 777 test.py(我知道有点矫枉过正,但以防万一) - 确保 shebang 正确,
which python3返回/usr/bin/python3 - 我符号链接了我的
crunchworld.conf,如this post 中所述
也许我忘记了更多。我真的很茫然,我觉得我已经用尽了所有的途径。
有谁知道为什么这个错误仍然发生?
【问题讨论】:
标签: python python-3.x apache cgi