php path bin

¿Cómo obtener la ruta del PHP BIN desde PHP?



path (8)

¡Es muy fácil!

var_dump(getenv(''PHPBIN''));

Pero funciona solo en Windows, por lo que deberíamos usar este ansver - https://stackoverflow.com/a/3889630/2574125

¿Cómo conseguí esto? Acabo de escribir echo echo phpinfo(); Y buscó allí php path. Juse ver aquí:

Entonces acabo de llegar: php getenv y ... ves el resultado. Úsalo, amigos.

¿Cómo puedo obtener la ruta bin de PHP desde PHP? Lo vi en phpinfo (); Pero necesito otro método que lo consiga en sistemas Linux y Windows.


En windows, usando wamp, puede usar la variable ini - extension_dir - como se coloca en la carpeta php.

Me gusta esto:

echo str_replace(''ext/'', ''php.exe'', ini_get(''extension_dir''));


Normalmente, en una instalación de PHP predeterminada simple en Windows, el archivo php.ini se ubica y carga desde el mismo directorio de PHP binario.

Para simplificar, los usuarios de Windows:

echo dirname(php_ini_loaded_file()).DIRECTORY_SEPARATOR.''php.exe'';

¡voilà!

Por supuesto, si está utilizando varios archivos ini, es posible que no funcione si los archivos no están en el mismo directorio binario de PHP. Por cierto, esto puede resolver a la mayoría de los casos. Desarrolladores de Windows ejecutando PHP desde el entorno de desarrollo local.


Puedes usar:

$_SERVER[''_'']

Además, la constante predefinida PHP_BINDIR proporciona el directorio donde se encuentra el ejecutable php.

Muestra en Codepad e ideone .

Parece que, por razones de seguridad, $_SERVER valores de $_SERVER no están expuestos. (Supongo. Por favor corrígeme si me equivoco).


Tal vez la mejor solución esté en el componente de proceso de Symfony: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Process/PhpExecutableFinder.php y https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Process/ExecutableFinder.php . En uso:

<?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;


Un método que utiliza variables de entorno, asumiendo que el ejecutable php está en la ruta del sistema.

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 }


Windows, XAMPP

$php = getenv(''PHPRC'') . ''/php.exe''; if(is_file($expected)){ return $php; }


Solo Linux Use el comando "which" para encontrar php.

$phpPath = exec("which php");

Tenga en cuenta que esto no garantiza el mismo archivo ejecutable php que puede estar usando su servidor web, sino la primera instancia que se encontró al mirar a través de las rutas.