通过 XAMPP 从同一 Apache 服务器提供 PHP 和 Node.JS

Posted

技术标签:

【中文标题】通过 XAMPP 从同一 Apache 服务器提供 PHP 和 Node.JS【英文标题】:Serving PHP and Node.JS from the Same Apache Server via XAMPP 【发布时间】:2015-10-02 06:42:27 【问题描述】:

我的 PC 是我在 XAMPP 上运行的服务器,我还让它可以通过真实域名 (www.example.com) 访问。

现在,我如何创建一个子域 (node.example.com) 以指向 nodeJS,而所有其他域/子域保持原样?

我使用的是 Windows 8.1。

另外,您是否需要在 XAMPP 控制面板旁边运行 NodeJS 服务器命令提示符?或者考虑到我已经安装了 NodeJS 并且可以工作,是否可以单独使用 XAMPP。

【问题讨论】:

我的猜测是它与编程没有直接关系。但是,这似乎是一个开发环境,所以我觉得它是主题。任何与网络或服务器应用程序相关的问题都应该继续ServerFault,但是,与设置开发环境相关的问题是 SO 的主题。此外,请求“冗长的分步指南”可能会导致投票失败 - 所以你真的应该发布你尝试过的内容以及你遇到的问题并提出具体问题。 我在这里发帖是因为我之前在这个网站上看到过类似的问题。 (感谢ServerFault,寿)。我之所以要求“一步一步”,是因为我对这个网站感到沮丧,因为用户避免提出棘手的问题,只是简单地拒绝投票而不说为什么。 再次投反对票。我想这是我最后一次在这里发帖。再次使用这个网站对我来说是个奇迹。 这里的人肯定会太快地对问题投反对票,但在发布问题时也有很多准则需要遵循。尝试编辑它并添加更多细节。我赞成你,记录在案。在没有评论解释原因的情况下投反对票也违反了指导方针。在 ServerFault 上尝试相同的问题——如果这更直接地是一个编程问题,你将不会在这里得到相同的结果。我仍然认为ProxyPass 是可行的方法——您可以编辑并发布您的ProxyPass/VitrualHost Apache 配置,以便我们尝试调试它吗? 谢谢,我 100% 同意你所说的。好吧..我会坚持这篇文章,以防有人(或我自己)发布最终答案。感谢服务器故障! 【参考方案1】:

它们可以轻松地在同一台机器上运行。你可以继续使用mod_php来服务PHP请求,或者配置php-fpm。对于 Node.JS,您可以使用 FastCGI/uWSGI,或者只使用 Apache 的 mod_proxyProxyPass 代理到 Node 进程的连接。 This 帖子很好地解释了后一个过程。您询问了如何使用不同的子域——方法是使用 Apache VirtualHost。 This 将帮助您开始配置 VirtualHosts,然后您需要在 Node VHost 中使用 ProxyPass 方法。

【讨论】:

谢谢。我刚来自你发给我的那个链接。它确实有效,但只能在 url 中使用 localhost:12345 .. 我的问题是我如何使子域指向这样的东西,并像 nodeJS 之前一样将普通 php 用于其他子域。 嗯,这就是 ProxyPass 的重点。当您直接进入节点端口时,不涉及 Apache。如果启用了mod_proxy 并且正确配置了ProxyPass,则不需要端口号。 编辑添加了一些关于子域的信息;我错过了您原始问题中的那部分。

以上是关于通过 XAMPP 从同一 Apache 服务器提供 PHP 和 Node.JS的主要内容,如果未能解决你的问题,请参考以下文章

解决无法通过ip从其他电脑访问xampp集成开发服务器( 从其他电脑访问本机apache服务器)

使用 Android-App 通过 Internet 访问本地 Apache 服务器 (XAMPP)

Apache2指令通过VirtualHost容器与xampp冲突

如何从其他设备访问 XAMPP 服务器?

从 XAMPP 运行 apache 服务时出错

XAMPP Apache 服务器无法在内部网络上运行