将自定义程序部署到托管服务

Posted

技术标签:

【中文标题】将自定义程序部署到托管服务【英文标题】:Deploying a Custom Program to a Hosting Service 【发布时间】:2011-01-20 00:41:47 【问题描述】:

我是服务器/主机等方面的新手,虽然我在 C、Java 等方面有一些编程经验。如果这个问题“荒谬”,请原谅。

我最近从一个托管站点购买了服务,即这个(hostmds)。我有一些用 C++ 编写的代码,我想在托管站点中运行它。所以我的问题是:

这可能吗,还是我必须用新语言重写所有内容? 我的方法应该是什么?

编辑:我有一个共享主机帐户。

【问题讨论】:

【参考方案1】:

这是什么类型的主机? 这是什么应用程序,是守护进程吗?

根据您拥有的访问权限数量,您可以在 cgi-bin 文件夹中或通过服务器的 shell 运行代码。

根据您用来编写代码的操作系统/编译器,您可能需要修改一些内容才能在目标操作系统上运行。您可能应该添加更多细节。 :)

【讨论】:

应用程序将是一个守护进程。我使用共享主机。【参考方案2】:

许多托管服务提供 CGI/FastCGI/SCGI,可用于运行 C++ web 应用程序。但是,这取决于您的主机是否可以实际执行此操作,因为可能很难让构建在其他系统上的二进制文件在网络托管服务上运行(如果您甚至可以首先上传它们)。

在 shell 服务和虚拟服务器上,您还可以运行守护程序(直接侦听端口),但特别是在 shell 服务上,出于安全原因,您不能侦听低端口 (0..1024)。

请注意,最便宜的托管包通常最多只允许 php,因此您需要更昂贵的东西才能获得更多访问权限。

最好向托管服务提供商询问更多信息,因为这些信息因主机而异。

【讨论】:

所以如果我理解正确的话,我需要将在我的操作系统中编译的二进制文件上传到 CGI 目录,对吧? 需要为托管服务(它的 CPU、操作系统、库版本等)编译二进制文件。这就是为什么如果您没有 shell 访问权限或 - 甚至更好 - 虚拟服务器会很复杂的原因。【参考方案3】:

您必须从您的主机获得一个“虚拟私人服务器”帐户才能执行此操作。这将使您能够在您的主机上编译您的程序并运行它,就好像它是您控制下的独立机器一样。

这意味着您还将负责维护自己的 HTTP 服务器程序(如 Apache,如果在 Linux/Unix 主机上运行),以及您自己的数据库服务器和其他支持。

如果您有一个支持 SSH 的“共享主机”帐户(最常见的低成本选项),您也许可以编译您的程序,甚至可以运行它,但您会受制于心血来潮(反复无常或其他方式) ) 的系统管理员(您可能会发现您需要的库已被删除或移动)

【讨论】:

我有共享主机帐户。那么我可以在服务器上编译我的程序吗? 如果您的共享主机允许 SSH 访问(也就是说,您可以打开终端并登录到主机上的帐户),那么:您可能能够使用您的 C++ 运行编译器(即 gcc)源代码和您的主机可能拥有您需要链接的所有库(静态或动态),并且您的主机可能会授予您执行编译器生成的新二进制文件的权限——这些是您的主机提供商做出的决定 感谢文森特的帮助。

以上是关于将自定义程序部署到托管服务的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 Web 部件部署到 SharePoint 2013

将自定义 R 脚本部署为 Web 服务 Azure ML Studio

OpsWorks 厨师将自定义 json 部署到 php

如何将自定义 WebPartPage 部署到特定目标站点 (Web)

为啥委托方法需要将自定义类托管对象上下文的内容保存在委托类托管对象上下文中?

无法将自定义 Mule 连接器部署到 Anypoint Exchange