检测 PHP 二进制路径 - 奇怪的情况

Detecting PHP binary path - strange situation

我的 phpinfo 输出中没有 PHP_BINARY 或 PHP_BINDIR。服务器上有 3 个版本 - 5.3 5.6 7.0 和 Virtualmin。默认值为 5.6 - 它可以很好地处理 http 请求。但我还需要 运行 这个版本的 cronjobs,但是

# /usr/bin/php -v
PHP 5.3.3 (cli) (built: Mar 22 2017 12:27:09)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

另一次尝试:

whereis php
php: /usr/bin/php /etc/php.ini /etc/php.d /usr/lib64/php /usr/share/php 
/usr/share/man/man1/php.1.gz

这是我的 phpinfo 的文本。 https://pastebin.com/T0WSwJ1c

请帮忙!

已添加 - 我将 php 模式从 fastcgi 更改为 Apache 处理程序,并且再次 - 在 5.6 phpinfo 输出中没有 PHP_BINARY 或 PHP_BINDIR。我搜索了所有 php 类文件

find / -name 'php*' > php.txt

结果在这里 https://justpaste.it/1bwap

我找到了 cgi 二进制文件(?)/home/***/cgi-bin/php5.6.cgi(用户名被感知) 好的 return 5.6 版本但是如何 运行 cron 呢?!

# /home/****/cgi-bin/php5.6.cgi ./t.php
PHP Warning:  Unknown: Filename cannot be empty in Unknown on line 0
Status: 404 Not Found
X-Powered-By: PHP/5.6.25
Content-type: text/html; charset=UTF-8

No input file specified.

好吧,在 GNU+Linux 系统和类似系统(例如,Freebsd)中,您可以在 /bin/usr/bin 中找到所有可执行文件,因此 php 命令是/usr/bin/php.

另外,为了模拟结果,您可以在 whereis 命令中使用 -b 选项以找到 php 可执行文件。

找出答案的一个好方法是通过 shell:

执行
/usr/bin/php -v

最后我在 /opt/rh/rh-php56/root/usr/bin/php

找到了它

当我发布 find / -name 'php*' > php.txt 时,我删除了一堆 /opt/rh/something.. 结果,认为它们完全无关紧要。