Pregunta

Actualmente estoy desarrollando un par de complementos para Sublime Text 2 en OS X y me gustaría hacerlos multiplataforma, lo que significa que tengo que averiguar si y dónde. php.exe esta instalado.

Ahora mismo llamo /usr/bin/php en Python, que obviamente sólo funciona en OS X y Linux:

phppath = '/usr/bin/php'<br>
pluginpath = sublime.packages_path() + '/HtmlTidy/tidy.php'<br>
retval = os.system( '%s "%s"' % ( phppath, scriptpath ) )

Pero en Windows, parece no haber una ruta predeterminada definitiva para php.exe.Cuanto más lo buscaba en Google, más posibilidades aparecían.Hasta ahora creo que tendría que comprobar la existencia de cada una de las siguientes rutas:

c:\php\php.exe
c:\php5\php.exe
c:\windows\php.exe
c:\program files\php\php.exe
c:\wamp\bin\php\php5\php.exe
c:\xampp\php\php.exe

Ya es una gran colección, pero lo que pido es una completo lista que cubre todas las posibilidades - o Otra forma de resolverlo que debería ser tan sólida como verificar cada ruta posible.

Entonces, si tiene php.exe instalado en algún lugar distinto a estos, deje un comentario con su ruta y lo agregaré a la lista anterior.

Además, parece haber php.exe y php-cli.exe.Supongo que estaría bien recorrer cada ruta posible, verificar primero php-cli.exe, luego verificar php.exe y tomar la primera coincidencia.¿Es correcto o existe una práctica mejor?

¿Fue útil?

Solución

Si el usuario ha definido la carpeta bin de PHP agregada al sistema PATH entonces deberías poder intentar ejecutar php -v para comprobar que está presente.

Si desea obtener la ruta completa al ejecutable php y el sistema de destino es Windows 2003 o posterior (es decir, Vista y 7), entonces puede usar el WHERE comando, es decir:

C:\>where php.exe
C:\Program Files (x86)\WAMP\bin\php\php5.3.5\php.exe

Vea también una pregunta posiblemente relacionada: ¿Existe un equivalente de "cuál" en la línea de comando de Windows?.

Si realmente estás desesperado por encontrar cualquier archivo en la computadora del usuario, puede intentar ejecutar el equivalente de un find - pero va a ser lentamente!

C: && cd \ && dir /s /b php.exe

Otros consejos

Desde PHP 5.4 y posteriores, puedes usar la constante PHP_BINARY.

C:\xampp\php\php.exe 

Debería funcionar si tu xampp está activado D: o MI: cambias en consecuencia de C:

intentar

echo PHP_BINDIR;

Funciona, lo probé en MacOS como con php 5.6

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top