如何从PHP获取php的bin路径?我在phpinfo()中看到过它; 但我需要另一种方法在Linux和Windows系统中获取它.
您可以使用:
$_SERVER['_']
此外,预定义常量PHP_BINDIR
给出了找到php可执行文件的目录.
样品在键盘和ideone.
看起来,出于安全原因,$_SERVER
值不会暴露.(我猜.如果我错了,请纠正我).
Linux Only使用"which"命令查找php.
$phpPath = exec("which php");
请注意,这并不保证您的Web服务器可能使用的php可执行文件,而是查看路径时找到的第一个实例.
假设php可执行文件位于系统路径中,使用环境变量的方法.
function getPHPExecutableFromPath() { $paths = explode(PATH_SEPARATOR, getenv('PATH')); foreach ($paths as $path) { // we need this for XAMPP (Windows) if (strstr($path, 'php.exe') && isset($_SERVER["WINDIR"]) && file_exists($path) && is_file($path)) { return $path; } else { $php_executable = $path . DIRECTORY_SEPARATOR . "php" . (isset($_SERVER["WINDIR"]) ? ".exe" : ""); if (file_exists($php_executable) && is_file($php_executable)) { return $php_executable; } } } return FALSE; // not found }
也许最好的解决方案是在Symfony流程组件中:https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Process/PhpExecutableFinder.php和https://github.com/symfony/symfony /blob/master/src/Symfony/Component/Process/ExecutableFinder.php.正在使用:
find()) { throw new \Exception('The php executable could not be found, add it to your PATH environment variable and try again'); } return $phpPath;