Python 使用CGI脚本运行Flask应用时出现500服务器错误

Python 使用CGI脚本运行Flask应用时出现500服务器错误,python,apache,flask,cgi,ionos,Python,Apache,Flask,Cgi,Ionos,我的Python Flask/CGI程序不断收到500内部服务器错误 我在共享主机上运行它,因此我遵循了本教程: 这是我的主要python脚本:(~/website/mainApp.py) 这是我的CGI脚本(~/website/main.CGI) 这是我的.htaccess文件(~/website/.htaccess): 这基本上是它的一个文件树: 这就是我得到的错误: Internal Server Error The server encountered an internal err

我的Python Flask/CGI程序不断收到
500内部服务器错误

我在共享主机上运行它,因此我遵循了本教程:

这是我的主要python脚本:(
~/website/mainApp.py

这是我的CGI脚本(
~/website/main.CGI

这是我的.htaccess文件(
~/website/.htaccess
):

这基本上是它的一个文件树:

这就是我得到的错误:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
有人看到错误可能在哪里吗

谢谢


编辑:它现在有一个奇怪的
.pyc
文件。但是我没有添加它。?

您的
.cgi
.py
文件的内容看起来不错

主要问题是
.cgi
文件的权限不正确。
网站
目录也可能如此——它的权限在您发布的文件视图中不可见

您需要对CGI文件以及指向该文件的任何目录具有执行(和读取)权限

理论上,当从
网站
目录中运行时,以下内容应足够:

chmod a+rx . main.cgi
chmod uo+rx . main.cgi
请注意,
也将该命令应用于当前(
网站
)目录。这会向所有者、组和其他人添加读取权限和执行权限

如果您不想为该组应用任何权限,那么这就足够了:

chmod a+rx . main.cgi
chmod uo+rx . main.cgi

至于
.htaccess
文件,它也是有效的,并且可以工作——假设您已经在服务器上启用了。如果您还没有启用,请查看post以获取有关启用该功能的说明。

您的
.cgi
.py
文件的内容看起来不错

主要问题是
.cgi
文件的权限不正确。
网站
目录也可能如此——它的权限在您发布的文件视图中不可见

您需要对CGI文件以及指向该文件的任何目录具有执行(和读取)权限

理论上,当从
网站
目录中运行时,以下内容应足够:

chmod a+rx . main.cgi
chmod uo+rx . main.cgi
请注意,
也将该命令应用于当前(
网站
)目录。这会向所有者、组和其他人添加读取权限和执行权限

如果您不想为该组应用任何权限,那么这就足够了:

chmod a+rx . main.cgi
chmod uo+rx . main.cgi

至于
.htaccess
文件,它也是有效的,并且可以工作——假设您已经在服务器上启用了。查看post以获取关于启用该功能的说明,以防您尚未启用。

我更改了
main.cgi
文件顶部的shebang,它成功了

之前:
#/usr/bin/python

之后:
#/usr/bin/python3.7
我更改了
main.cgi
文件顶部的shebang,它成功了

之前:
#/usr/bin/python

之后:
#/usr/bin/python3.7

I更新python文件、cgi文件及其所在目录的权限。我还向.htaccess文件添加了
RewriteBase/
。然而,每当我转到URL时,它都会将我带到默认页面,即IONOS服务器,该页面上有sedo。出于某种原因,它没有运行烧瓶。我更新了帖子。我不太熟悉IONOS的设置。但是您需要确保
DocumentRoot
设置正确-指向
~/website/
。通过
DocumentRoot
,您的意思是
RewriteBase
@CostaParas它们是两个不同的东西-
DocumentRoot
是在(全局)配置中设置的,它应该指向服务器的根目录。(但我想你不能用IONOS来改变这一点)。也许可以在你的
.htaccess
文件中尝试
RewriteBase/website
。我这样做了,但我仍然遇到了最初的问题,它将我带到了IONOS的sedo停车页面。顺便说一句,在IONOS中,您可以更改当前指向/网站的网站“目标”@costaparasI更新python文件、cgi文件及其所在目录的权限。我还向.htaccess文件添加了
RewriteBase/
。然而,每当我转到URL时,它都会将我带到默认页面,即IONOS服务器,该页面上有sedo。出于某种原因,它没有运行烧瓶。我更新了帖子。我不太熟悉IONOS的设置。但是您需要确保
DocumentRoot
设置正确-指向
~/website/
。通过
DocumentRoot
,您的意思是
RewriteBase
@CostaParas它们是两个不同的东西-
DocumentRoot
是在(全局)配置中设置的,它应该指向服务器的根目录。(但我想你不能用IONOS来改变这一点)。也许可以在你的
.htaccess
文件中尝试
RewriteBase/website
。我这样做了,但我仍然遇到了最初的问题,它将我带到了IONOS的sedo停车页面。顺便说一句,在IONOS中,您可以更改当前指向/网站的网站“目标”@costaparasBTW您可以安全地忽略
.pyc
文件,这正是Python生成的字节码。顺便说一句,您可以安全地忽略
.pyc
文件,这正是Python生成的字节码。太棒了!很高兴它对你有用。奇怪的是,你在日志中没有看到任何错误消息?相反,您被重定向到默认的IONOS页面;他们的设置很奇怪,太棒了!很高兴它对你有用。奇怪的是,你在日志中没有看到任何错误消息?相反,您被重定向到默认的IONOS页面;他们的设置很奇怪。