【问题标题】:AH01215: (8) Exec format error: exec of '/var/www/python/hello.py' failed: /var/www/python/hello.pyAH01215: (8) 执行格式错误: '/var/www/python/hello.py' 的执行失败: /var/www/python/hello.py
【发布时间】:2017-04-26 05:22:28
【问题描述】:

我正在尝试在 apache 服务器中将 python 作为 CGI 运行。 Python 版本是 2.7.12。 这是我的 apache conf 文件

<VirtualHost *:80>
   <Directory /var/www/python>
   Options +ExecCGI
   AddHandler cgi-script .cgi .py
   Order allow,deny
   Allow from all
   </Directory>
   DocumentRoot /var/www/python
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我的 python 脚本 /var/www/python/hello.py 看起来像这样

print('Content-Type: text/html; charset=utf-8\n')
print("Hello, World!")

当我访问 url 时,我得到了内部服务器错误,我从 error.log 文件中得到了详细信息,它说,

[Sun Dec 11 09:53:40.694909 2016] [cgi:error] [pid 6812] [client 127.0.0.1:36282] AH01215: (8)Exec 格式错误: '/var/www/python/ 的执行hello.py' 失败:/var/www/python/hello.py [Sun Dec 11 09:53:40.695312 2016] [cgi:error] [pid 6812] [client 127.0.0.1:36282] 头文件前的脚本输出结束:hello.py

PHP 脚本在服务器上仍然可以正常工作。 如何用 py 文件解决这个问题?

【问题讨论】:

    标签: python apache python-2.7 cgi


    【解决方案1】:

    您的脚本需要一个“shebang”行,类似于

    #!/usr/bin/env python
    

    作为第一行。另外,请确保脚本可以使用chmod 执行。

    【讨论】:

      【解决方案2】:

      你应该使用:

      #!/usr/bin/env python
      # -*- coding: UTF-8 -*-
      print('Content-Type: text/html; charset=utf-8\n')
      print("ąęśłłłóąś UTF answer")
      

      【讨论】:

      • 谢谢你,你拯救了我的一天 :)。我仍然对您的答案有效的原因感到有些困惑,但是@charlie martin 给出的上述答案无效:/
      • 因为:# -- 编码:UTF-8 --
      猜你喜欢
      • 1970-01-01
      • 2018-06-12
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 2017-12-14
      • 1970-01-01
      相关资源
      最近更新 更多