Python+;lighttpd&x2B;CGI:有网络框架吗?

Python+;lighttpd&x2B;CGI:有网络框架吗?,python,cgi,lighttpd,web-frameworks,Python,Cgi,Lighttpd,Web Frameworks,我无法访问根目录,无法使用此服务器。它拥有Python2.6.5并运行lighttpd,为CGI下的所有Python脚本提供服务。是的,普通的老CGI。不幸的是,我只能使用这个服务器,所以切换到更合适的主机不是一个选项。所以,我的问题是:在这种情况下,我是否可以使用Python的web框架?我尝试了Django、web.py和Flask,除了HTTP 500错误之外,没有任何成功,但也许我只是错过了一些东西 同样,要求是: Python 2.6.5 lighttpd 普通老CGI 没有根访问权

我无法访问根目录,无法使用此服务器。它拥有Python2.6.5并运行lighttpd,为CGI下的所有Python脚本提供服务。是的,普通的老CGI。不幸的是,我只能使用这个服务器,所以切换到更合适的主机不是一个选项。所以,我的问题是:在这种情况下,我是否可以使用Python的web框架?我尝试了Django、web.py和Flask,除了HTTP 500错误之外,没有任何成功,但也许我只是错过了一些东西

同样,要求是:

  • Python 2.6.5
  • lighttpd
  • 普通老CGI
  • 没有根访问权限
谢谢。

。您需要在
mod_cgi
和您的Django项目(实际上是一个WSGI应用程序)之间进行一些调整。例如,如果您使用的是
virtualenv
(我强烈建议您这样做),则需要进行一些调整

脚本经过深思熟虑,但我想仍然有可能
request.FILES
会被错误处理。我希望您没有使用文件上载。另外,请注意,使用CGI时性能会下降,因为每个请求都会重新加载整个应用程序。使用FastCGI或普通WSGI,可以在实际服务请求之前启动项目的多个实例,并且每个实例都可以在其生命周期内处理多个请求(一次一个)。这允许您有一个更快的加载时间,因为所有东西仍然是从以前的请求中预加载的

还请注意,可以在
.cgi
文件中复制该功能:您可以启动应用程序的多个实例,并使用
random.random
旋转进行负载平衡,将其写入其套接字。

。您需要在
mod_cgi
和您的Django项目(实际上是一个WSGI应用程序)之间进行一些调整。例如,如果您使用的是
virtualenv
(我强烈建议您这样做),则需要进行一些调整

脚本经过深思熟虑,但我想仍然有可能
request.FILES
会被错误处理。我希望您没有使用文件上载。另外,请注意,使用CGI时性能会下降,因为每个请求都会重新加载整个应用程序。使用FastCGI或普通WSGI,可以在实际服务请求之前启动项目的多个实例,并且每个实例都可以在其生命周期内处理多个请求(一次一个)。这允许您有一个更快的加载时间,因为所有东西仍然是从以前的请求中预加载的


还请注意,可以在
.cgi
文件中复制该功能:您可以启动应用程序的多个实例,并使用
random.random
rotation进行负载平衡,将其写入其套接字。

最后回答您的问题:是,基本上,任何Python框架都可以使用一些桥接器与CGI一起工作。它能可靠地工作吗?我不知道。它的性能好吗?可能不会。服务器上的lighttpd.conf有以下行:
cgi.assign=(“.py”=>”/usr/bin/python”)
看起来任何virtualenv和shebang更改都不会有帮助,因为lighttpd总是尝试在常规python解释器下启动我的脚本。我按照那个指令做了所有的事情,但仍然有500个错误。另外,lighttpd不支持任何本地.htaccess文件。是的,
.htaccess
文件仅与Apache兼容。除了那500个错误之外,你还有错误日志吗?这个问题可能与URL重写有关,这主要是htaccess文件试图解决的问题。URL重写是web服务器在处理部分请求后重新处理请求的一种技术。您可能仍然可以通过//example.com/yourwsgi.(py | cgi)/your/request/path/?foo=barWikipedia访问您的应用程序。例如,Wikipedia对漂亮的链接使用重写:
/wiki/Main_Page
在内部处理并重写为
/w/index.php?title=Main_Page
。大多数重写引擎都能提供令人印象深刻的内容,但由于您没有配置CGI脚本的权限,您可能无法将所有请求传递给CGI脚本。奇怪的是,错误日志中没有相关内容。当我直接通过它的.py URL访问脚本时,我得到了所有的500个错误。我没有尝试任何URL重写,因为我无法修改lighttpd.conf.So来最终回答您的问题:是的,基本上任何Python框架都可以使用某种桥与CGI一起工作。它能可靠地工作吗?我不知道。它的性能好吗?可能不会。服务器上的lighttpd.conf有以下行:
cgi.assign=(“.py”=>”/usr/bin/python”)
看起来任何virtualenv和shebang更改都不会有帮助,因为lighttpd总是尝试在常规python解释器下启动我的脚本。我按照那个指令做了所有的事情,但仍然有500个错误。另外,lighttpd不支持任何本地.htaccess文件。是的,
.htaccess
文件仅与Apache兼容。除了那500个错误之外,你还有错误日志吗?这个问题可能与URL重写有关,这主要是htaccess文件试图解决的问题。URL重写是web服务器在处理部分请求后重新处理请求的一种技术。您可能仍然可以通过//example.com/yourwsgi.(py | cgi)/your/request/path/?foo=barWikipedia访问您的应用程序。例如,Wikipedia对漂亮的链接使用重写:
/wiki/Main_Page
在内部处理并重写为
/w/index.php?title=Main_Page
。大多数重写引擎都能提供令人印象深刻的内容,但由于您没有配置CGI脚本的权限,您可能无法将所有请求传递给CGI脚本。奇怪的是,错误日志中没有相关内容。当我直接通过它的.py URL访问脚本时,我得到了所有的500个错误。我没有尝试任何URL重写,因为我无法修改lighttpd.conf。