Python 执行.py时出现500内部服务器错误

Python 执行.py时出现500内部服务器错误,python,apache,Python,Apache,我试图让python脚本在点击图像时执行,但每当调用python脚本时,它总是抛出500个内部服务器错误?这是日志中的文本 [Sun Feb 15 20:31:04 2015] [error] (2)No such file or directory: exec of '/var/www/forward.py' failed [Sun Feb 15 20:31:04 2015] [error] [client 192.168.15.51] Premature end of script head

我试图让python脚本在点击图像时执行,但每当调用python脚本时,它总是抛出500个内部服务器错误?这是日志中的文本

[Sun Feb 15 20:31:04 2015] [error] (2)No such file or directory: exec of '/var/www/forward.py' failed
[Sun Feb 15 20:31:04 2015] [error] [client 192.168.15.51] Premature end of script headers: forward.py, referer: http://192.168.15.76/Testing.html
我不明白为什么它会说
脚本头过早结束
?我可以执行一个只打印html标题或文本的基本python脚本。我试图执行的文件中只有一些基本的wiringPi代码,可以通过sudo python forward.py命令很好地执行

编辑

这是我试图执行的脚本:

#!/usr/bin/python

import time

import wiringpi2 as wiringpi

wiringpi.wiringPiSetupPhys()

wiringpi.pinMode(40, 1)

wiringpi.digitalWrite(40, 1)

time.sleep(2)

wiringpi.digitalWrite(40, 0)

wiringpi.pinMode(40, 0)
检查事项:

  • 确保脚本是可执行的(
    chmod+xforward.py
    ),并且它有一行she-bang行(例如
    #!/usr/bin/env-python

  • 确保脚本的所有者和组与apache运行的用户匹配

  • 尝试以apache用户身份从命令行运行脚本。我看到您正在使用
    sudo
    测试它。它真的需要
    sudo
    ?如果是这样的话,作为apache运行的任何用户都需要sudoers访问

  • 由于看起来您正在使用CGI,请尝试添加:
    importCGITB;cgib.enable()到脚本的顶部。这将捕获任何异常并将其作为响应返回,而不是导致脚本死亡


  • 除了@lost theory的建议之外,我还要检查以确保:

    • 您对脚本具有可执行权限
    • Apache有权访问脚本的文件夹/文件。例如:

      <Directory /path/to/your/dir>
        <Files *>
           Order allow,deny
           Allow from all
           Require all granted
        </Files>
      </Directory>
      
      
      命令允许,拒绝
      通融
      要求所有授权
      

    也许你应该显示脚本?我确认该文件确实是可执行的,我确实有#/脚本开头的usr/bin/env python代码行。我更改了所有者和文件组,以匹配apache运行的用户和组,并且我还确认用户可以从命令行运行该文件。在所有这些之后,服务器仍然返回500内部服务器错误OK,我添加了另一个步骤。过来看。如果您可以让其他python脚本工作,但仍然无法从该脚本中获得确切的错误,请尝试将程序缩减为导致其死亡的语句。例如,import语句,或者wiringpi函数,等等。我将尝试注释掉特定的部分,直到我能让它真正编译。我试过你的cgit导入建议,但没有用。更新:我创建了一个新程序,通过这个命令os.system(“echo 1=185>/dev/servoblaster”)来转动轮子。该程序执行得很好,但一旦转动轮子,就会显示内部服务器错误,但是如果我让它返回一些文本到屏幕,它不会返回内部服务器错误??是的,这是有道理的,CGI脚本必须返回HTTP响应的文本。我已经将其添加到000默认文件中,并且我还设置了一个.httdaccess文件,以确保Web服务器可以执行.py文件。此外,我还从与当前文件位于同一目录的网页上运行了其他python脚本,这让我感到困惑?