Cuando estamos ejecutando nuestra web puede que nos encontremos en más de una ocasión con problemas de permisos para ejecutar los archivos o simplemente acceder a ello. En muchos de estos casos la solución es bastante sencilla, y es que el usuario que ejecuta el servicio web ( en mi caso apache ) no tiene privilegios de ejecución, lectura o escritura del archivo con problemas.
Para solucionarlo existen varias formas, solo comentaremos 3 de ellas.
La primera y más sencilla, es crear un archivo php e incluir la función de phpinfo() para ver las variables de entorno y revisar cual es el usuario que las ejecuta.
echo phpinfo();
En la página resultante revisamos las variables de entorno y buscamos el usuario y su grupo que ejecutan el servicio.
En este caso, tanto el usuario como el grupo es www-data, que es lo normal si apache se ejecuta en modo seguro.
También existe una forma de acceder directamente a las variables de entorno del servidor, por lo que podemos ejecutarlas de manera directa.
$user = getenv('APACHE_RUN_USER');
$group = getenv('APACHE_RUN_GROUP');
echo $user.":";
echo $group."
";
El código anterior nos da como resultado el usuario «dos puntos » y el grupo. En mi caso «www-data:www-data».
Por último, y solo disponible para linux, es preguntarle directamente al sistema operativo quién lo está ejecutando. Igual lo haremos dentro de un archivo php.
echo exec('whoami');
Lo cual nos retorna el usuario que lo ejecuta, en mi caso también «www-data».
Bueno, y esas son 3 formas de saber cual es el usuario que está ejecutando el servicio web.