我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 二进制文件)在生产服务器上的位置。
我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 二进制文件)在生产服务器上的位置。
通常是这样/usr/bin/php
,但您可以尝试捕获和解析命令“ whereis php
”或“ which php'
”的输出。
PHP_BINARY
或者更好的是,如果可用,请使用常量。看看这里。
大多数时候,PHP_BINARY
预定义的常量应该可以完成这项工作。
如果你需要更多的开发,你可以使用 Symfony 的Process 组件,通过使用它的PhpExecutableFinder类:
// composer require symfony/process
use Symfony\Component\Process\PhpExecutableFinder;
(new PhpExecutableFinder)->find();
试试这两个步骤: updatedb (只需要运行一次即可更新定位索引) locate php | grep -P "/php$"
定位命令应该显示服务器上所有文件名或文件夹名中带有“php”的文件。“grep”管道将结果过滤到以“/php”结尾的内容。