如何从php脚本获得php解释器的完整路径(没有命令行访问)。
我需要做的是:
$foo = "/usr/bin/php";
echo $foo;
但我需要先得到路径,这样我才能把它分配给foo。
如果您有一个在Windows和nix上都能工作的解决方案,但是如果没有的话,nix就可以了。
在你问之前,
问题是,使用它输出的任何东西都不起作用。例如,PHP_BINDIR将输出/usr/bin,但是使用/usr/bin/php不会有帮助。完整的代码是:
exec("php-cli $path_to_file > /dev/null 2>/dev/null &");
但是即使使用/usr/bin/php-cli也不起作用,尽管它告诉了我这一点。我必须使用:
exec("/opt/php52/bin/php-cli $path_to_file > /dev/null 2>/dev/null &");
例如,对于这个特定的主机。
发布于 2012-07-18 12:58:40
您可以使用以下常量找到PHP二进制路径:
PHP_BINDIR
从PHP5.4开始,您可以获得当前实际使用以下常量运行的可执行文件的路径:
PHP_BINARY
发布于 2015-11-12 20:32:14
Linux用户可以尝试使用whereis
命令。
我在PHP中遇到了这种情况。
whereis php
发布于 2014-10-07 23:46:25
在Windows上,我建议使用以下代码片段:
<?php
$pid = getmypid();
$output = shell_exec(sprintf('tasklist /nh /fo csv /fi "PID eq %d"', $pid));
$processInfo = explode(',', $output);
echo PHP_BINDIR . DIRECTORY_SEPARATOR . trim($processInfo[0], '"');
在unix上,shell命令可能会使用ps
https://stackoverflow.com/questions/11550193
复制