如何将C++部署到我的web服务器


How do I deploy C++ to my web server?

根据本文,有三种方法

  • (1) 在C++中完成全部工作,使您的程序成为一个独立的web服务器(可能通过apache代理以提供ssl、静态媒体、身份验证等)
  • (2) 通过apache在cgi-bin中运行C++
  • 制作一个扩展到C++部分的PHP包装器(如果性能关键部分很小,这是一个很好的选择,因为您仍然可以使用PHP的垃圾收集和字符串操作所提供的舒适性)

我不确定哪一个是最好的,所以我看了一下大容量网站的作用。以下是2010年的Facebook帖子

他们使用一个静态分析工具Hip-Hop,将PHP转换为C++。

我不需要静态分析工具,因为我只有大约1500行,可以手动转换。。。但我需要一个起点。

现在我运行一个灯堆栈,并希望保持在它减去(p)HP。

这里有一个链接,解释了Facebook的工作原理。不确定它有多准确。

感谢

正如评论所指出的,Facebook几乎可以肯定地使用了一种高度定制的解决方案,这种解决方案需要高昂的管理成本来换取极高的效率。这不太可能是你真正想要的。

由于您想要的只是替换LAMP堆栈中的"p",这意味着您可能想要保留"LAM"——Linux、Apache和MySQL(如果相关)部分。这是个好主意;虽然在Facebook的规模上运行自定义web服务器有优势,但它不太可能对你有用,继续运行Apache肯定会更容易、更简单。(而且可能更安全,因为你不必考虑安全性,也不必自己修复错误。)

而且您计划翻译所有的PHP,而不仅仅是其中的一部分,所以从PHP调用C++是没有意义的。

因此,在您的情况下,最好的解决方案很可能是使用现有的Apache服务器通过cgi-bin运行C++应用程序。

FastCGI是比CGI更好的选择,在某些情况下可以像CGI一样工作。如果你只想使用Apache,你也可以开发一个Apache模块,关于这个主题有一本很好的书:《Apache模块书》这本书描述了C开发的许多元素,Apache在很多方面都像(某种)应用程序服务器。

通过仔细的C/C++编码,您可以在有限的内存下获得卓越的性能。不是所有的,但在某些情况下,非常强大。