PDA

Ver la Versión Completa : saber si esta php instalado


coulthard
19-04-2006, 22:12:38
Hola a todos, mi pregunta es si existe alguna forma de saber si php está instalado en una máquina desde Delphi.

Muchas gracias de antemano

dec
19-04-2006, 22:34:34
Hola,

Podrías explayarte un poco en lo que necesitas hacer realmente, porque, lo que propones me parece a bote pronto un tanto problemático. Por poner un caso, no sé que PHP toque el Registro de Windows para nada. Además PHP no tiene porqué instalarse en Windows: puedes descargarte los archivos "listos para usar", los pones en alguna carpeta y ya está: no hay posibles huellas que pudiera dejar un programa de instalación.

¿Luego entonces qué queda, según se me pasa ahora esto por la cabeza? Pues buscar el archivo "PHP.exe" por el disco duro... algo demasiado costoso, que desde ya descartaría en un primer momento, pero, lo resalto porque esto también podría ser problemático, puesto que podrías toparte con más de un archivo "PHP.exe" en el ordenador. Por ejemplo, yo cuento ahora con hasta tres editores (que estoy probando) que instalan por su cuenta PHP, en sus propios directorios de instalación, así que ya me dirás cuál es el bueno...

A lo mejor a alguien se le ocurre algo mejor, o ya ha pasado por ello y puede aclararnos el tema, pero, ya digo que no estaría mal que dijeras qué pretendes conseguir, para ver si por ahí se abre otra vía para darte una posible idea. Ya dirás lo que sea. ;)

coulthard
20-04-2006, 19:42:44
tienes razón dec he sido un poco escueto en mi pregunta, asi que me voy a explicar un poco más.

Tengo una aplicación web que necesita de servidor web+php+mysql para funcionar y lo que quiero hacer es un instalador para Windows, para que cualquiera la pueda instalar en su casa. Entonces necesito comprobar que tiene instalado y que le falta.

Ahora mismo ya sé comprobar si está corriendo un servidor web (utilizando TIdHTTP) y si está corriendo mysql (utilizando TIdTelnet) y para el caso de que alguno de ellos no esté corriendo utilizo Xampp que permite correr independientemente el servidor web y el mysql.

Bien, hasta aquí todo solucionado. El problema que tengo es si el usuario tiene instalado un servidor web y no tiene php. Por eso quiero saber si existe alguna forma de saber si el servidor web tiene php instalado.

P.D. Dejo el codigo que utilizo para saber si esta corriendo un servidor web y mysql por si a alguien le hace falta


//MySQL
try
Telnet.Connect;
mysql:=true;
//Existe Mysql
except
mysql:=false;
//NO Existe Mysql
end;
Telnet.Disconnect;

//Servidor Web
try
HTTP.Connect;
serv:=true;
//Existe Servidor Web
except
serv:=false;
//NO Existe Servidor Web
end;
HTTP.Disconnect;

coulthard
20-04-2006, 19:44:50
Perdón me olvidé poner en el código los parámetros del TIdTelnet que son los siguientes:
Host: 127.0.0.1
Port: 3306

seoane
20-04-2006, 19:56:43
Entiendo, corrigeme si me equivoco, que tu aplicacion instala varias paginas php en el servidor web. Entonces para saber si php esta instalado correctamnete porque no colocas en el directorio raiz del servidor web un archivo php, algo sencillito

Por ejemplo

<?php echo "Hola"; ?>


Luego con TIdHTTP intentas descargarlo, si php esta instalado te devolvera una cosa y si no lo esta te devolvera otra. Mirando lo que te devuelve puedes saber si php esta correctamente instalado y configurado.

Solo es una idea improvisada, ¿que te parece?