制作Linux Web服务的最佳方法是什么?

10

我有一个运行Ubuntu Linux Server Edition的服务器。以前我有一个Windows Server,使用ASP.net在Windows上创建Web服务很容易。而Linux支持使用Mono的ASP.net,但不如Windows功能齐全。那么,在Linux服务器上创建XML Web服务的最佳方法是什么?

谢谢

11个回答

9
一个Web服务可以用任何语言编写。Web服务是一个程序,通过http协议接收请求并返回响应(xml或json)。您可以使用像Apache或lighthttpd这样的Web服务器为您处理http(s)和多线程,并编写一个简单的脚本来执行实际的工作。该脚本可以用任何语言编写,如php、perl、python、shellscript、cgi c++、free pascal cgi等。
当然,你也可以使用TCP sockets自己编写所有内容,但我猜这不是你的目标。 对于FOSS项目,我会选择在php中编写,因为它很容易:http://davidwalsh.name/web-service-php-mysql-xml-json 如果要编译,我会使用FreePascal,就像这篇指南中介绍的那样:http://leonardorame.blogspot.com/2010/02/web-20-programming-with-object-pascal.html 如果我喜欢C++,我会使用QTCreator并按照这篇指南操作:http://libqxt.bitbucket.org/doc/tip/tech-web.html

6
如果您想使用ASP.net,则需要使用Windows服务器。
如果由于某种原因必须使用Linux,则需要学习另一种语言以在Linux环境中正常工作。

5

Linux网站开发与Windows网站开发有很大的不同。在Linux中,我们使用Apache调用脚本,如果想更进一步,可以使用处理TCP/IP连接的守护进程。而不像Windows那样有“应用程序”和“Web服务”的繁文缛节。

如果您想使用特定的技术如SOAP,可以在其中提到,但据我所知,Linux网站开发并不像Windows那样基于服务。


2
你能否详细说明“Linux Web开发不像Windows那样是基于服务的”? - Spencer Ruport
6
您不需要编写服务、启动服务、监控服务或停止服务以进行修改等操作。Linux Web开发通常通过在PHP、mod_perl等脚本中完成,这些脚本在收到HTTP/HTTPS请求时执行并返回内容。如果想要更高级的功能,则可以使用C语言编写自定义Apache模块或守护程序,但除此之外,Linux开发不支持Windows开发中所拥有的“伪应用程序”概念。 - MiffTheFox
这个答案在使用“服务”一词方面存在机会。按定义,Web服务与Windows服务绝对没有关系,尽管Windows服务可能是提供该Web服务的东西。抱歉……那句话很糟糕,但它是准确的。 - ojblass

2
主要取决于您在Linux上运行的Web服务器和Web语言,比其他任何因素都更重要。 如果您使用的是Apache Tomcat,请查看Axis2(http://ws.apache.org/axis2/)和CXF(以前是XFire,在http://cxf.apache.org/)。 JBoss内置了Web服务支持(JBossWS),因此使用起来相当容易,并且由于它是Java EE服务器,它使用可移植的标准Web服务代码。
您还可以使用PHP编写Web服务,如果您在Web服务器上使用PHP。 Apache = IIS PHP或Java EE或JSP或JSF = ASP.Net 在Linux领域有更多选择...

2
有许多方法可以做到这一点,但考虑到您的ASP.NET背景,为什么不尝试使用MonoDevelop IDE呢?它已经成熟了很多,而且还会继续发展。

另一个选择是使用Eclipse(Java或PHP)。


1

最近我遇到了同样的问题。我想要一个薄薄的层将我的SQL数据库转换成支持JSON或XML的Web服务。我只想写SQL语句...这似乎是一个相当合理的要求。

然而,我找到的所有选项都涉及安装某种企业级的“一切都做”的解决方案。所以我最终编写了一些“粘合剂”,它接受在XML“数据集”定义中定义的SQL语句,并提供了一个简单的、符合RESTful风格的Web服务。

我在这里记录了我的方法:

http://www.nsquared.co.nz/jarvis-docs/jarvis_guide.odt

如果你想使用这个框架,我可以给你最新版本的tarball。目前它已经在三到四个小应用程序中使用,其中有2个是ExtJS,1个是Flex,还有1个是Asp.Net。


所提及的文档和源代码可以在以下网址找到:http://gitorious.com/jarvis - Jamie Love

0

从问题中可以明显看出他正在使用asp.net。 - user47322
4
显然,你的阅读理解很差。 - Spencer Ruport

0

Java涉及服务器端Web编程的各个方面,有很多行业标准规范和实现方式。您可以从像Apache Tomcat这样的开源实现开始,或者任何http://ws.apache.org/


0

我猜最好的答案有点取决于你真正需要什么,但其中一个选项是使用任何最近的Web框架,例如RailsCakePHPDjango,它们允许您轻松定义数据库支持的模型,然后组合动态站点。对于简单的站点,这些框架的周转时间可以用分钟来衡量。


0

尽管它基于商业产品以下, 但这是一个非常好的入门指南,可以帮助您了解如何在Linux上开发基于Java的Web服务。如果您找到一个基于免费软件的类似教程,请分享。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接