【问题标题】:What does actually mean by the frequently used term "PHP binary"?常用术语“PHP 二进制文件”的实际含义是什么?
【发布时间】:2019-01-26 04:33:05
【问题描述】:

我在笔记本电脑上使用 Windows 10 家庭单语言 64 位操作系统

我在笔记本电脑上安装了最新版本的 XAMPP。

这已经在我的笔记本电脑上安装了 PHP 7.2.8Apache/2.4.34 (Win32) OpenSSL/1.1.0h PHP/7.2.8

我从PHP Manual Page 看到以下句子:

PHP 可以在所有主要操作系统上使用,包括 Linux、许多 Unix 变体(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、macOS、RISC OS,可能还有其他。 PHP 还支持 今天的大多数网络服务器。这包括 Apache、IIS 和许多 其他。这包括任何可以利用 FastCGI 的 Web 服务器 PHP 二进制文件,如 lighttpd 和 nginx。

从上面的文字中,我没有得到术语“PHP 二进制”的确切含义。这个特殊的术语在 PHP 手册的许多地方都非常频繁地使用,但没有给出“PHP 二进制”的实际含义。

我用谷歌搜索了它的含义,我知道了 '预定义常量' PHP_BINARY

所以,我尝试执行以下代码,希望能消除我对常用术语 “PHP 二进制” 的实际含义的怀疑,并检查了我的网络浏览器中的输出:

<?php
  echo PHP_BINARY;
?>

令人惊讶的是,我得到了以下输出:

C:\xampp\apache\bin\httpd.exe

看到这个输出我很惊讶,因为在输出中我得到了 Apache 文件 httpd.exe 的完整地址。我期待得到关于 PHP 的信息,但我得到了 Apache 文件的地址。为什么会这样?

那么,我仍然不明白常用术语 “PHP 二进制” 的真正含义是什么?

我仍然不知道经常使用的术语 “PHP 二进制” 的实际含义是什么?

有人,请用通俗易懂、简单明了的语言解决我对常用术语“PHP二进制”的疑问。

我在等你的帮助。

【问题讨论】:

  • 换成“运行PHP的可执行文件”可能会更清晰。与源代码相反。

标签: php apache binary php-7 fastcgi


【解决方案1】:

PHP 本身作为程序在您的计算机上运行(通常称为二进制文件)。

假设我们在 Windows 上,PHP 二进制文件可能是php.exe。本质上,PHP 本身。

请注意,PHP 二进制文件可以是服务器模块... DLL 或类似的。

【讨论】:

  • 感谢您的回答。如果 php.exe 是一个实际的 PHP 二进制文件,那么为什么预定义的常量包含 Apache 文件“httpd.exe”的完整路径,而不是 php 文件“php.exe”的完整路径?我已经确认我的机器上存在“php.exe”文件。
  • @user2839497 如果您看到httpd.exe,那是因为那是正在运行的应用程序......但它正在将 PHP 作为模块加载。
【解决方案2】:

任何程序的编译版本通常被称为“二进制”。

PHP 有多个二进制文件用于多种用途。

  • php.exe 用于在您的命令提示符中本地运行脚本;

  • php-cgi.exe 符合 FastCGI 协议;

  • php7apache2_4.dll 是 PHP 封装为 Apache 2.4 模块;

  • 还有其他一些人。

在这种情况下,文档指的是php-cgi.exe

常量PHP_BINARY 包含当前执行PHP 的二进制文件的路径。由于 XAMPP 使用 Apache,而 Apache 很可能以 Apache 模块形式使用 PHP,因此 httpd.exe 被识别为二​​进制文件是有道理的,因为它正在加载 php7apache2_4.dll

【讨论】:

    猜你喜欢
    • 2013-08-03
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2011-07-25
    相关资源
    最近更新 更多