我在PHP中使用如下exec
命令:
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();
尝试以下两个步骤:updateb(只需要运行一次即可更新定位索引)查找 PHP |grep -P "/php$"
locate 命令应显示服务器上文件名或文件夹名称中带有"php"的所有文件。"grep"管道将结果过滤到以"/php"结尾的内容。