2009-05-05 12 views
5

Estoy escribiendo una aplicación web simple en PHP que necesita tener acceso de escritura a un directorio en el servidor, si el directorio no se puede escribir Quiero mostrar un mensaje de error explicando para configurar el propietario del directorio a quien sea el el servidor web se está ejecutando como (por ejemplo, www-data, nobody) pero como la mayoría de la gente no sabe esto, sería bueno poder decirles a quién debe asignarle el directorio. ¿Es posible encontrar esto desde PHP?¿Puedo encontrar a qué usuario se está ejecutando el servidor web como en PHP?

+0

Esta es una pregunta muy similar a http://stackoverflow.com/questions/805907/get-apache-linux-user-from-php. Puede encontrar su respuesta allí también. – zombat

Respuesta

0

Si puede ejecutar alguna fiesta, se puede utilizar whoami o usted podría ser capaz de hurgar en /proc

3

El truco rápido y sucio-yo uso es para escribir un archivo a /tmp/. Se debe crear con el usuario y el grupo utilizado por el proceso de PHP.

0

Ese mensaje de error se desmorona en un entorno de servidor de Windows. "Por favor, asegúrese de que el servidor web tenga acceso de escritura al directorio" probablemente sea un mejor mensaje de error.

2

Si en Linux/Unix:

<?php 
$temp = tmpfile(); 
print_r(posix_getpwuid(fileowner($temp))); 
?> 
18
<?php 
    echo exec('whoami'); 
?> 
+1

Lo estoy usando pero no imprime nada. –

3

en plataformas UNIX, esta solución podría funcionar incluso con el modo seguro en adelante, siempre que la extensión POSIX se instala o se compila en

$user = posix_getpwuid(posix_geteuid()); 
echo $user['name']; 
.

Los documentos son here.

Cuestiones relacionadas