¿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.
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.