【发布时间】: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进程下。