【问题标题】:Using HHVM with FastCGI on a shared hosting server在共享托管服务器上使用 HHVM 和 FastCGI
【发布时间】:2023-04-05 02:35:01
【问题描述】:

我希望这里的人可以阐明以下内容:

我正忙于使用 NGINX 和 HHVM 以及 PHP-FPM 故障转移来设置共享托管服务器。我计划在服务器上托管 100 到 200 个 Wordpress 站点。

HHVM 被配置为使用 FastCGI。是否可以让一个 HHVM 实例运行多个网站,每个网站都是各自的 Linux 用户?还是我唯一的选择是让所有东西都以默认的 www-data 用户身份运行?

我希望避免后一种汤厨房式的环境,因为它存在明显的安全和交叉污染风险。我看到有人提到运行单独的 HHVM 实例,每个网站一个,但这听起来是一个相当耗费资源的选项。

如果不可能有一个带有 FastCGI 的 HHVM 实例,并且每个网站的 PHP 进程都以各自的 Linux 用户身份运行,我可能会选择放弃 HHVM 以支持 PHP-FPM,这将使我能够实现后者。

任何提示或建议将不胜感激!

谢谢

【问题讨论】:

    标签: nginx hhvm


    【解决方案1】:

    虽然可以让一个 HHVM 实例为多个共享站点提供服务(这是一个非常简单的 nginx 配置),但它仍然是一个为所有站点提供服务的单个 HHVM 进程——即,以同一个用户身份运行。如果您需要在每个站点之间完全分离,则必须为每个站点运行一个单独的 HHVM 实例。使这种共享主机设置工作更顺利是团队希望在某个时候进行的工作。

    这是一个性能权衡。 HHVM 默认作为单个进程运行,其中每个请求都是该进程中的一个线程。这允许 HHVM 更有效地为请求提供服务:它不会为每个请求派生一个新进程,并且,如果您正在为同一个站点提供一堆请求,这些请求可以共享数据,例如编译后的字节码和程序集 ( “翻译缓存”)。

    PHP-FPM 模型实际上类似于您建议解决问题的后一种想法:PHP-FPM 总是为每个请求分叉一个新进程。它没有 HHVM 的线程模型选项。当然,无论如何,进程可能是您在共享托管环境中想要的。

    然而,与 HHVM 相比,PHP-FPM 的启动成本和每个进程的内存开销要低一些。这种权衡取决于您和您的客户。正如我上面所说,让 HHVM 在像这样的共享主机设置中更好地工作是团队希望在某个时候让工作更顺利的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 2023-03-10
      • 2013-03-14
      • 2011-11-28
      • 2012-07-17
      相关资源
      最近更新 更多