Как я могу получить путь bin php от PHP? Я видел это в phpinfo(); но мне нужен другой метод, который получает его в системах linux и windows.
Как получить путь PHP BIN от PHP?
Ответ 1
Вы можете использовать:
$_SERVER['_']
также константа
PHP_BINDIR
предоставляет каталог, в котором найден исполняемый файл php.
Похоже, что по соображениям безопасности $_SERVER
значения не отображаются. (Думаю..Plz исправьте меня, если я ошибаюсь).
Ответ 2
Только Linux Используйте команду "which", чтобы найти php.
$phpPath = exec("which php");
Примечание. Это не гарантирует тот же исполняемый файл php, который может использовать ваш веб-сервер, а скорее первый экземпляр, который был найден при просмотре путей.
Ответ 3
Метод с использованием переменных среды, предполагая, что исполняемый файл 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
}
Ответ 4
Возможно, лучшим решением является компонент процесса 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 Symfony\Component\Process\PhpExecutableFinder;
$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;
Ответ 5
В окнах, используя wamp, вы можете использовать ini variable - extension_dir - как он помещается в папку php.
вот так:
echo str_replace('ext/', 'php.exe', ini_get('extension_dir'));
Ответ 6
Обычно, при простой установке PHP по умолчанию под Windows, файл php.ini находится и загружается из одного и того же каталога PHP-двоичного файла.
Чтобы упростить, пользователи Windows:
echo dirname(php_ini_loaded_file()).DIRECTORY_SEPARATOR.'php.exe';
вуаля!
Конечно, если вы используете несколько ini файлов, может не работать, если файлы не находятся в одном двоичном каталоге PHP. Кстати, это может решить большинство случаев. Разработчики Windows используют PHP из локальной среды разработки.
Ответ 7
Это очень просто!
var_dump(getenv('PHPBIN'));
Но он работает только в окнах, поэтому мы должны использовать этот ansver - fooobar.com/info/317554/...
Как я получил это? Я просто набрал echo echo phpinfo();
и искал там php-путь. Juse см. Здесь:
тогда я просто прихожу сюда: php getenv и... вы видите результат. Используйте его, ребята.