如何从PHP获取PHP BIN的路径?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从PHP获取PHP BIN的路径?相关的知识,希望对你有一定的参考价值。
如何从php获取php的bin路径?我在phpinfo()中看到过它;但我需要另一种方法在Linux和Windows系统中获取它。
您可以使用:
$_SERVER['_']
此外,the predefined constant PHP_BINDIR
给出了找到php可执行文件的目录。
看起来,出于安全原因,$_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。正在使用:
<?php
use SymfonyComponentProcessPhpExecutableFinder;
$phpFinder = new PhpExecutableFinder;
if (!$phpPath = $phpFinder->find()) {
throw new Exception('The php executable could not be found, add it to your PATH environment variable and try again');
}
return $phpPath;
在windows中,使用wamp,你可以使用ini变量 - extension_dir - 因为它放在php文件夹中。
像这样:
echo str_replace('ext/', 'php.exe', ini_get('extension_dir'));
通常,在Windows下的简单默认PHP安装中,php.ini文件位于PHP二进制文件的同一目录中并从中加载。
为了简化,Windows用户:
echo dirname(php_ini_loaded_file()).DIRECTORY_SEPARATOR.'php.exe';
瞧!
当然,如果您使用多个ini文件,如果文件不在同一个PHP二进制目录中,则可能无效。顺便说一句,这可能解决大多数情况。 Windows开发人员从本地开发环境运行PHP。
这很容易!
var_dump(getenv('PHPBIN'));
但它只适用于windows,所以我们应该使用这个ansver - https://stackoverflow.com/a/3889630/2574125
我怎么了?我只是键入echo echo phpinfo();
并在那里搜索php路径。 Juse见这里:
然后我就到了这里:php getenv和......你看到了结果。伙计们,请使用它。
Windows,XAMPP
$php = getenv('PHPRC') . '/php.exe';
if(is_file($expected)){
return $php;
}
以上是关于如何从PHP获取PHP BIN的路径?的主要内容,如果未能解决你的问题,请参考以下文章