WordPress: Permisos de archivos y carpetas en Linux

Publicado por parzibyte en

En este post voy a mostrar cuáles son los permisos necesarios para que WordPress pueda funcionar sin problemas en nuestro servidor web de Linux con Apache.

Como sabemos, Linux tiene el control de permisos de archivos y carpetas para que no todos puedan leer, escribir o ejecutar. Además, todos los archivos y directorios tienen un dueño.

En ocasiones hay problemas ya que WordPress requiere ciertos permisos para funcionar correctamente; o no tanto los permisos, sino los dueños de los archivos y carpetas.

Permisos correctos para WordPress

Durante la instalación, el dueño de todo debe ser www-data, es decir, Apache.

Para ello, descarga y descomprime WordPress. Después dirígete a la carpeta raíz de WordPress; es decir, en donde está el archivo wp-activate.php, wp-config.php, etcétera (todos los comandos los vamos a ejecutar desde ahí) y ejecuta:

sudo chown www-data:www-data -R *

Estamos cambiando el dueño de todos los archivos de manera recursiva; el dueño ahora será www-data.

El siguiente apartado puede causar problemas en algunos servidores, pero agrega seguridad

Después de la instalación, cambia los permisos para que tú (el usuario actualmente logueado) seas el dueño:

sudo chown $USER:$USER -R *

Nota: al poner $USER se remplazará por tu usuario, si no quieres usar la variable simplemente coloca el nombre real.

Pero Apache necesita acceso a la carpeta de wp-content así que cambiaremos el dueño de únicamente esa carpeta:

sudo chown www-data:www-data wp-content/

Nota: de nuevo, si al ejecutar el comando anterior hay errores (por ejemplo, que no puedes instalar temas y te pide credenciales FTP), regresa todo a la normalidad con:

sudo chown www-data:www-data -R *

Sigue sin funcionar

Tal vez no le estás dando los permisos al usuario con los que el script se ejecuta. Para saber cuál usuario está ejecutando los archivos crea un archivo llamado test.php con el siguiente contenido:

<?php echo exec("id") ?>

La salida debe ser algo como:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Si no dice www-data entonces significa que el dueño es el que se indica ahí, ejecuta el comando de arriba de nuevo pero cambiando el usuario.

 


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: