如何将pysimplesoap服务器设置为在带有wsgi的apache2上运行?

2024-04-25 07:31:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个soap服务器,它一直作为一个独立的应用程序运行,即只需执行python mysoapserver.py

但是,我希望它可以通过使用wsgi的apache2访问。在

以下是当前代码的一些代码摘录:

进口:

from pysimplesoap.server import SoapDispatcher, SOAPHandler, WSGISOAPHandler

代码摘要

^{pr2}$

我需要如何更改上面的代码,以便通过wsgi在apache2上访问它。 您还可以包括我需要对/etc/apache2/sites-available/default文件所做的更改。在


Tags: 代码frompyimport服务器程序运行wsgiserver
1条回答
网友
1楼 · 发布于 2024-04-25 07:31:44

wsgi规范指出,在python脚本中只需将wsgi应用程序公开到一个名为application的变量中,如下所示:

#add this after you define the dispatcher
application = WSGISOAPHandler(dispatcher)

然后将脚本放在apache安全的地方,比如/usr/local/www/wsgi-scripts/,并在可用的站点中添加一个WSGIScriptAlias指令,该指令将告诉apachewsgi脚本处理程序在哪里查找脚本以及它应该在其中运行的应用程序。在

^{pr2}$

如果您在pythonpath中安装了mod\wsgi和pysimplesoap,那么它应该可以正常工作。还要记住,在使用mod ugwsgi时,您可能应该更改您的dispatcher.location和{}使用Apache使用的路径。无论您是否使用Apache,这些信息都将保留在wsdl定义中。在

如果您想保持独立运行应用程序的可能性,请替换HTTPServer部分

logging.info("Starting server...")
httpd = HTTPServer(("", 8050),SOAPHandler)
httpd.dispatcher = dispatcher
httpd.serve_forever()

有了这个:

if __name__=="__main__":
    print "Starting server..."
    from wsgiref.simple_server import make_server
    httpd = make_server('', 8050, application)
    httpd.serve_forever()

如果您需要更多信息,请咨询the doc for wsgi in simple soapthe mod_wsgi guide。在

相关问题 更多 >