php - 如何在端口而不是 htdocs 文件夹中运行 PHP 应用程序?
问题描述
当我们运行 nodejs 应用程序时,它会绑定到机器上的一个端口,我们可以从该端口访问它。有没有类似的方法来运行 PHP 应用程序,而不仅仅是通过 xampp htdocs 文件夹转到默认位置?
我想避免将我的文件存储在 htdocs 文件夹中。
解决方案
你把几个不同的问题混为一谈。
PHP 传统上通过 CGI 或 FastCGI (PHP-FPM) 守护程序执行。在这些情况下,Web 服务器本身(例如 Nginx 或 Apache)是侦听端口的,它通过这些协议与 PHP 通信。大多数服务 HTTP 请求的 Node.js 应用程序都会跳过 CGI 和 FastCGI 路由并自己运行 HTTP 守护程序。前面仍然有一个适当的 Web 服务器是很常见的,以处理慢速客户端的缓冲和缓存。
考虑这一点的方式是,对于大多数(当然不是全部)Node.js 应用程序,使用 HTTP 而不是 FastCGI。(而且,作为奖励,如果您只想让客户端直接连接到 Node.js,您可以完全跳过对 Web 服务器的需求。)
现在,关于应用程序目录结构......最好将应用程序代码实际留在文档根目录之外。一种真正简单的方法是使用一个文件,例如index.php
. 来接收所有路由(通过 Web 服务器中的重写规则配置),然后加载并执行适当的代码。在磁盘上,此应用程序代码的其余部分位于文档根目录之外,可以通过简单的require()
/加载include()
。
推荐阅读
- python - 我将如何编写 Python 脚本来比较两个文件夹并删除两个文件夹中都不存在的文件夹
- sanity - 如何使用算术运算符计算总和
- google-sheets - 如何同时在 2 个谷歌工作表上显示重复项?
- apache-spark - 你如何对 ForeachWriter 实现进行单元测试?
- go - Golang 内置函数“make”如何实现不同类型的参数长度检查?
- javascript - 兄弟姐妹之间的图像轻松交流
- javascript - 使用 html2canvas 调整图像的宽度和高度
- c# - 绑定组合框时如何在 c#.net 中获取大写格式的绑定数据
- azure - Azure ADF V2 中的 24 小时时间参数问题
- node.js - 在 docker-compose 中映射卷时得到“npm ERR!enoent:没有这样的文件或目录”