【问题标题】:Programmatically get path to php以编程方式获取 php 的路径
【发布时间】:2011-06-24 00:44:23
【问题描述】:

我想做和How to "fork" a video conversion process into background, in php?类似的事情:

exec("/usr/bin/php ./foo.php > /dev/null 2>&1 &");  // executed in Apache

但是,这将在各种平台上运行:我的机器,其中 php 编译在 ~/、windows、几个 prod 服务器...

有没有办法以编程方式获取“/usr/bin/php”部分?

我能想到的事情:

  • 获取当前 pid,从中猜测可执行文件
  • 在C中,第一个参数是可执行文件的路径,可能有类似的东西

【问题讨论】:

  • 如果您希望在网页请求中使用此代码(您将其标记为 apache),您永远不会知道。 Apache 没有在通用配置中调用任何 PHP 二进制文件。
  • @Dan 什么是“常见配置”?苏PHP?这称为使用二进制文件 (php-cgi)。
  • PHP 作为一个模块,而不是一个 CGI,是默认和最常见的配置。 PHP代码运行在apache进程下。

标签: php apache path exec


【解决方案1】:

最简单的方法是确保在$PATH 环境变量中找到php CLI 二进制文件,然后使用php /path/to/foo.php

在 UNIX 上,您还可以使用 /usr/bin/env php,它将执行在 $PATH 中找到的第一个 php 二进制文件。但这显然不适用于 Windows。

最后一种明显的方法是将PHP 的位置作为可配置选项,并在适当时使用用户指定的路径。

【讨论】:

  • 好吧,这就是我所担心的。由于 php 可以引用 php4 或 php5(我需要 php5),所以我采用了配置方式。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 2016-09-14
  • 1970-01-01
  • 1970-01-01
  • 2013-08-24
相关资源
最近更新 更多