如何找到当前运行的PHP可执行文件?

Sch*_*ern 9 php fastcgi

从PHP程序内部我想知道执行它的二进制文件的位置.Perl就是$^X为了这个目的.PHP中是否有相同的东西?

这样它可以使用自己执行子PHP进程(而不是硬编码路径或假设"php"是正确的).

UPDATE

  1. 我使用的是lighttpd + FastCGI,而不是Apache + mod_php.所以是的,有一个PHP二进制文件.
  2. eval/include不是解决方案,因为我正在生成一个必须在请求之外生存的服务器.

我尝试过但不起作用的事情:

  • $_SERVER['_']看起来像我想要的命令行,但它实际上来自上一个执行程序的shell设置的环境变量.从Web服务器运行时,这是Web服务器二进制文件.
  • which php将无法正常工作,因为不保证PHP二进制文件与Web服务器中的二进制文件相同PATH.

提前致谢.

Lep*_*eus 17

PHP_BINDIR常量为您提供php二进制文件所在的目录

  • 从我所看到的,PHP_BINDIR在WAMP的情况下提供了错误的路径. (3认同)
  • 这是有效的.我有'/ usr/bin/php`和XAMPP自己的php,并且执行它们每个都会产生正确的二进制路径. (2认同)
  • PHP_BINDIR 给出编译时 PHP 二进制文件的路径,而不是运行时二进制文件的位置。它们通常是相同的,但并非总是如此。 (2认同)