17

exec在 PHP 中使用如下命令:

exec("/usr/bin/php /path/to/Notification.php >> /path/to/log_file.log 2>&1 &");

在我的本地环境(MAMP)中,我知道 PHP 安装路径,所以我可以/usr/bin/php/Applications/MAMP/bin/php/php5.4.10/bin/php. 但我不知道 PHP 安装(PHP 二进制文件)在生产服务器上的位置。

4

3 回答 3

30

通常是这样/usr/bin/php,但您可以尝试捕获和解析命令“ whereis php”或“ which php'”的输出。

PHP_BINARY或者更好的是,如果可用,请使用常量。看看这里

于 2013-09-06T11:30:14.927 回答
9

大多数时候,PHP_BINARY 预定义的常量应该可以完成这项工作。

如果你需要更多的开发,你可以使用 Symfony 的Process 组件,通过使用它的PhpExecutableFinder类:

// composer require symfony/process

use Symfony\Component\Process\PhpExecutableFinder;

(new PhpExecutableFinder)->find();
于 2015-09-30T07:57:42.417 回答
0

试试这两个步骤: updatedb (只需要运行一次即可更新定位索引) locate php | grep -P "/php$"

定位命令应该显示服务器上所有文件名或文件夹名中带有“php”的文件。“grep”管道将结果过滤到以“/php”结尾的内容。

于 2020-01-10T05:30:05.733 回答