【发布时间】:2019-04-24 22:41:58
【问题描述】:
我有一个包含以下代码的 Python 脚本:
#! /home/flohosting/PythonTest/PythonTest/bin/python
print()
print("hello world!")
我在 GoDaddy VPS 上运行 Python 3.6。 Python 3.6 是一个虚拟环境。这个脚本工作得很好。当我在 Virtual Studio Code 中打开一个新文档时出现问题,从工作 .py 脚本中复制上面的代码,然后将其粘贴到新的 .py 脚本中,将脚本 CHMOD 上传到 755,然后尝试执行。然后我收到 500 内部服务器错误。这对我来说毫无意义。
我已经使用 PuTTY 登录到我的 SSH 并尝试 CHMOD a+x file_name.py 其中“file_name”是确切的文件名,但它仍然不起作用。我想不出其他任何东西来检查为什么该脚本在服务器上已存在 2 个多月的文件中有效,而不是在我上传的新脚本和 CHMOD 到 755 中。感谢您的任何建议。
编辑:脚本工作的链接是http://www.dockethound.com/bernard.py
非工作脚本的链接是http://www.dockethound.com/hello.py
编辑 2:我想出了一些办法,虽然我不知道为什么,但它正在工作。
使用 CuteFTP 9 时,我在“AUTO”上上传。我决定选择 ASCII,然后再次尝试上传。当我上传时,我收到一条错误消息,提示“这似乎是您要使用 ASCII 上传的二进制文件。您确定吗?”因此,由于某种原因,文件以二进制格式保存,或者被 CuteFTP 识别为二进制格式并以二进制格式上传,这会在尝试运行时导致 Apache 出现问题。但是如果是强制ASCII模式上传,问题就解决了。
贾罗德
【问题讨论】:
-
Web 程序的输出必须以
Content-type行开头。如果没有,您会收到 500 服务器错误。尝试添加print("Content-type: text/plain")作为第一行。 -
你能看一下服务器端的日志吗?也许这有更多关于这个问题的信息。另外,不清楚上面的脚本和你在服务器上做的事情有什么关系,因为上面的脚本与提供网络数据无关。
-
如果你正在使用 CGI @JohnGordon 有一个很好的观点。
-
John - 它不必以它开头,因为 www.dockethound.com/bernard.py 上的脚本可以正常工作。 www.dockethound.com/hello.py 上完全相同的脚本根本不起作用。
-
而
bernard.py和hello.py的内容一样?那么可能是网络服务器配置问题。