【问题标题】:How does the PHP interpreter interact with Apache?PHP 解释器如何与 Apache 交互?
【发布时间】:2016-05-20 15:25:02
【问题描述】:

我们一直在考虑为我们一直在从事的项目编写一个 php 解释器。除了解释之外,我一直在尝试——但没有成功——找出 PHP 解释器如何与 http 服务器交互。所以我来找你了,亲爱的 Stack Overflow 知识渊博的人。

我读过 php 在 localhost:9000 上侦听。不用说,我试图连接到它,但没有用。也许网络服务器运行“php file.php”并获取输出?

另外,解释 .php 文件的 php 解释器和解释 .pqp 文件的解释器(我们称之为 pqp)是否可以共存于一个网络服务器中?

非常感谢!

【问题讨论】:

    标签: php apache http web webserver


    【解决方案1】:

    PHP 与网络服务器交互的方式有几种。一种确实是将 PHP 文件通过管道传输到 PHP cli 中并以this question 的形式提供输出。正如我在那里写的:真的不推荐。

    下一个最好的事情是扩展 PHP 的 sapi,它提供了一组连接到网络服务器的连接器。在这种情况下,PHP 将像一个网络服务器模块一样运行(参见 apache+mod_php)。这样做的一个缺点是 PHP 试图解析它所掌握的所有内容。

    独立于网络服务器的方法是通过通用网关接口连接到 PHP,这是一个为各种交互式服务器端组件定义良好的接口。但是,它非常慢(而且有点不安全)。

    最后一步是实现 FastCGI。这是对 CGI 的改进,因为它尝试连接到正在运行的进程。在 PHP 世界中,这是通过php-fpm 实现的,它(默认情况下)确实在 9000/tcp 上侦听。

    【讨论】:

      猜你喜欢
      • 2011-02-15
      • 2015-06-29
      • 2011-10-26
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2011-01-15
      相关资源
      最近更新 更多