Подтвердить что ты не робот

Как получить путь PHP BIN от PHP?

Как я могу получить путь bin php от PHP? Я видел это в phpinfo(); но мне нужен другой метод, который получает его в системах linux и windows.

4b9b3361

Ответ 1

Вы можете использовать:

$_SERVER['_']

также константа

PHP_BINDIR предоставляет каталог, в котором найден исполняемый файл php.

Пример Codepad и ideone

Похоже, что по соображениям безопасности $_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-путь

тогда я просто прихожу сюда: php getenv и... вы видите результат. Используйте его, ребята.