26 de abril de 2016

Que usuario ejecuta Apache en Mac

Determinar el usuario con el cual se ejecuta Apache en Mac OS X, o cualquier sistema basado en UNIX, desde PHP.

En Mac OS X 10.11 El Capitan, ya viene instalado de fabrica Apache y PHP, y usando PHP nos permite determinar el nombre de usuario con el cual se ejecuta Apache.

Aunque existen muchas maneras de determinar con que nombre de usuario se ejecuta el proceso Apache, vamos a resolverlo desde PHP usando un comando familiar en Unix, el comando que reponde a la pregunta:

¿Quién soy Yo?

Desde la consola escribimos la pregunta, pero usando la palabra reservada para ello:

whoami

Esto nos devolverá nuestro nombre de usuario reconocido por el sistema operativo, pues evidentemente nosotros mismo hemos ejecutado el comando.

Entonces ahora debieramos preguntarnos con una lógica similar a la anterior:

¿Como hacer que el propio Apache ejecute el comando whoami ?

Y ahí nos ayuda nuestro viejo PHP. Sólo necesitamos crear el siguiente Script y colocarlo en el directorio de publicación de Apache.

<?php
//
echo exec('whoami');

A este Script lo vamos a llamar naturalmente ‘whoami.php’.

Iniciando Apache en Mac

Aunque Apache viene instalado en Mac OS X El Capitan (junto con PHP), este no viene activo. Para ejecutar Apache, desde consola escribimos el comando:

sudo apache2ctl star

Con la instrucción anterior sudo apache2ctl star, iniciamos Apache y este permanecerá activo, incluso se iniciará automáticamente la próxima vez de encendamos nuestra Mac.

Ahora necesitamos conocer cual es el directorio de publicación de Apache, el denominado DocumentRoot. En este caso, el comando a utilizar es:

httpd -S | grep DocumentRoot

Esto nos arrojará como resultado:

Main DocumentRoot: "/Library/WebServer/Documents"

Por lo tanto, sólo nos resta colocar nuestro Script llamado ‘whoami.php’ en la carpeta de publicación /Library/WebServer/Documents y desde consola iniciamos el navegador con la dirección:

open "http://localhost/whoami.php"

No olvidar darle los permisos adecuado a nuestro Script ‘whoami.php’. Por ejemplo, podríamos usar la instrucción chmod 755 whoami.php.

Y eso es todo, en la pantalla del navegador aparecerá el usuario con el cual se ejecuta Apache, en el caso de Mac OS X El Capitan el usuario es _www.

Conclusión

Pero ¿hay una forma más simple de determinar el usuario que usa Apache?,
la respuesta es: SI la hay!… y simplemente ejecutando desde la terminal el comando:

httpd -S

Ahí obtendremos toda la información, pero claro eso ya no sería usando PHP el cual era el tópico de este artículo.

Otros comando últiles

  • Conocer la versión de Apache: httpd -v
  • Conocer la versión de PHP: php -v
  • Más opciones del comando httpd: httpd -h