Título: inicar servicio Mysql y Apache Publicado por: yoelrodguez en 20 Agosto 2014, 15:12 pm Hola a todos, estoy haciendo un programa de php para iniciar los servicios de Mysql y Apache de mi servidor. Lo que me está sucediendo es lo siguiente, cuando se inició el servicio de mysql se me detienes la ejecución del script. Lo me mismo me sucede si inicio primero el apache. A continuación le dejo el código:
Código: <?php Título: Re: inicar servicio Mysql y Apache Publicado por: engel lex en 20 Agosto 2014, 17:35 pm Para que corra php tiene que apache estar corriendo, no entiendo como ejecutas el php sin apache...
Título: Re: inicar servicio Mysql y Apache Publicado por: yoelrodguez en 20 Agosto 2014, 19:03 pm El php lo estoy ejecutando desde la línea de comando. El c:>xampp\php\php.exe prueba.php
Título: Re: inicar servicio Mysql y Apache Publicado por: engel lex en 20 Agosto 2014, 19:31 pm Ahh ya, lo mas probable es que el apache reinicie el modulo php para asegurar su funcionamiento, tal vez el mysql haga algo similar
Título: Re: inicar servicio Mysql y Apache Publicado por: yoelrodguez en 20 Agosto 2014, 19:49 pm Después de lo que me comentaste, hice la prueba con un .bat y me sucede lo mismo. Si uno inicia no me inicia el otro y viceversa. No sé si es que tenga que colocar algo en la configuración del apache o del mysql.
Código: @echo off Título: Re: inicar servicio Mysql y Apache Publicado por: #!drvy en 20 Agosto 2014, 20:19 pm El problema que tienes, es que ambas applicaciones tiran output cuando las llamas. Por tanto, php se queda esperando que termine el output de la primera para ejecutar la segunda.
Esto se puede solucionar añadiendo " & " al final de cada system(). Código El problema, es que de igual modo, php y system() se quedaran a la espera de que finalicen estos programas para cerrarse. La solucion es usar otro programa para iniciar los servicios. En el caso de windows, tienes el comando "start" con el parametro /b. Si los usas y ocultas la salida, te sale bien. Código
start /b -> Inicia el proceso en la misma ventana. parametro $r -> es para ocultar la salida, aunque en caso de stderr, lo seguira mostrando. dirname(__FILE__) -> El directorio donde esta el .php actual. De todos modos PHP no fue hecho para estas cosas xD. Mirate tambien otras funciones como proc_open (http://php.net/manual/es/function.proc-open.php). Saludos Título: Re: inicar servicio Mysql y Apache Publicado por: yoelrodguez en 20 Agosto 2014, 20:23 pm Gracias todo trabajo Ok.
Título: Re: inicar servicio Mysql y Apache Publicado por: WHK en 22 Agosto 2014, 18:07 pm Se supone que para eso existen los servicios, debes usar el script del xampp que sirve para instalar apache e mysql como servicios, luego solo los inicias con service start apache2 && service start mysql, el tema es que ese script necesitaría permisos de root, mucho cuidado de los permisos que le des a ese script porque podrías comprometer la integridad de tu servidor, si apache corre como un usuario no www-data y como root puedes provocar que un atacante ejecute script de php desde tu pagina web como root, para eso son los servicios, ellos se encargan de iniciar los binarios con sus respectivos permisos y entornos ya que tampoco declaraste el entorno de apache ni de php.
|