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