【问题标题】:Apache "AH01215: (8)Exec format error" when attempting to run python scriptApache “AH01215: (8)Exec 格式错误”尝试运行 python 脚本时
【发布时间】: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


    【解决方案1】:

    将第一行改为

    #!/usr/bin/env python3
    

    来自

    #!/usr/bin/python3
    

    也许这行得通?

    【讨论】:

    • 它没有。实际上我第一次就有这种方式,但认为与which python3 相同有助于消除混乱
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2017-02-06
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    相关资源
    最近更新 更多