Cambiar el usuario con el que se ejecuta Apache

Cambiar usuario a apache

Cuando trabajamos con Symfony desde la consola y servimos los ficheros desde un servidor xampp (lampp en este caso) podemos tener múltiples problemas de permisos. En especial, cuando trabajamos en el entorno de desarrollo en el que se compila la cache en cada petición. Lo más habitual es que tras limpiar la cache desde la consola, al acceder desde el navegador obtengamos un error de acceso a los ficheros de la cache.

Esto es provocado por la diferencia de usuarios: en la consola nosotros tenemos nuestro usuario y al ejecutarse apache usa su propio usuario. Por tanto los permisos que aplicamos son los de “Otros”.

Ante esto tenemos varias soluciones de las que destaco dos:

Cambiar los permisos a 777 de todos los ficheros de la cache

Si bien es cierto que no se deben dar estos permisos, estamos trabajando en local, ¿Que puede pasar? Sin embargo, pronto nos damos cuenta de que es una solución temporal y si en algún momento borramos la cache volvemos a estar donde empezamos.

¿Hay alguna solución más permanente? ¿No podríamos modificar el usuario con el que se ejecuta apache?

Cambiar el usuario de Apache

Pues de hecho, esta es la mejor solución que he encontrado y posiblemente la más simple. Para poder hacer esto solo debemos de modificar el fichero httpd.conf que en el caso de haber instalado el servidor xampp podemos encontrarlo en /opt/lampp/apache2/conf/httpd.conf. Tenemos que añadir las siguientes lineas:


User miusuario
Group miusuario

donde miusuario se refiere al usuario que usamos en consola.

Después de esto hay que reiniciar el servidor con:

sudo /opt/lampp/lampp restart

Y ya estamos listos para trabajar.

Espero que os resulte útil.

P.D. Debemos tener mucho cuidado con cambiar el usuario de ejecución de apache en producción ya que estaríamos dándole los mismos privilegios que a nuestro usuario a cualquier script que se ejecute, lo que puede ser un problema de seguridad.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *