WordPress te pide un usuario ftp para instalar plugins

17/10/2022

WordPress te pide un usuario ftp para instalar plugins
Índice
  1. Comentarios
    1. WordPress requiere ftp
    2. 2:35[resuelto] : instalación fallida no se puede crear directorio en wordpress mejor manera de aprender (actioncoder)youtube - 5 de junio de 2021
    3. Ver más

Comentarios

Como señalé en el #340 (comentario), si se le piden las credenciales FTP, es debido a los permisos de su sistema de archivos. Creo que encontrarás que si corriges los permisos del sistema de archivos, el aviso desaparecerá y las instalaciones se completarán con éxito automáticamente dentro de la interfaz web (ya que el usuario www-data que ejecuta el código PHP necesita ser capaz de escribir en los directorios para que la instalación basada en la web tenga éxito).

Después de jugar un poco. Parece que en la construcción inicial el wp-content pertenece a root:root, así que si cambias wp-content y wp-content a www-data:www-data puedes subir y actualizar tus plugins. El problema con este método es que tienes que hacerlo para cada proyecto.

Lo mismo ocurre con su carpeta de temas, así que si tiene que generar algo dentro de ella tiene que ser propiedad de www-data:www-data, y si cambia la propiedad desde el interior del contenedor pierde la capacidad de cambiar los volúmenes montados en su máquina local, lo que es un poco incómodo si desarrolla el tema en su máquina local.

WordPress requiere ftp

No soy un amante de Linux, geek, gurú (o como lo llamen) así que no tenía ni idea de por qué pasaba esto en mi VPS o cómo solucionarlo. Pero como respetable "autodidacta" que soy, tuve que indagar en la situación.

No hay que ser un genio para saber que las imágenes se suben a través de PHP y PHP se ejecuta en apache, por lo que apache no tiene permiso para subir archivos. Parece que apache es un servicio y también un usuario en Linux. Así que después de todo, esto es un simple permiso de usuario.

Cuando mod_php se utiliza para ejecutar scripts PHP en un servidor web, no tiene permiso para escribir en el sistema de archivos si no lo posee. Yo subí los archivos a través de FTP. Así que los archivos fueron asignados al usuario ftp y el usuario Apache no tiene permiso para editarlos. Esto es realmente un problema común cuando se trabaja con un CMS como WordPress.

Tuve que configurar PHP para que se ejecute como FastCGI, ya que permite que los scripts FTP y PHP tengan el mismo acceso, lo que significa que la funcionalidad de carga y edición de archivos dentro del CMS funciona como un encanto sin ninguna otra configuración especial de permisos de archivos.

2:35[resuelto] : instalación fallida no se puede crear directorio en wordpress mejor manera de aprender (actioncoder)youtube - 5 de junio de 2021

(Es posible que también tengas que chmod algunas carpetas. Yo había hecho eso primero y no se arregló. No fue hasta que hice el comando chown que funcionó, así que no estoy seguro de si fue el comando chown solo, o una combinación de chmod y chown).

Esto es bastante normal en la mayoría de los entornos de alojamiento compartido - los archivos se almacenan como el usuario, y Apache se ejecuta como usuario apache o httpd. Esto es en realidad una buena precaución de seguridad para que los exploits y hacks no puedan modificar los archivos alojados. Podrías eludir esto configurando todos los archivos de WP con seguridad 777, pero eso significa que no hay seguridad, así que te aconsejo encarecidamente que no lo hagas. Simplemente use FTP, es la solución recomendada automáticamente con una buena razón.

Hay un montón de respuestas similares a esta pregunta, pero ninguna de ellas toca completamente la causa raíz. El comentario de Sebastian Schmid en el post original toca el tema pero no completamente. Aquí está mi opinión a partir de 2018-11-06:

Cuando intentas subir un plugin a través de la interfaz de administración de WordPress, WordPress hará una llamada a una función llamada "get_filesystem_method()" (ref: /wp-admin/includes/file.php:1549). Esta rutina intentará escribir un archivo en la ubicación en cuestión (en este caso el directorio del plugin). Por supuesto, puede fallar aquí inmediatamente si los permisos del archivo no están configurados correctamente para permitir que el usuario de WordPress (piense en la identidad del usuario que ejecuta el php) escriba el archivo en la ubicación en cuestión.

Ver más

WordPress sólo le pedirá su información de conexión FTP cuando intente instalar plugins o una actualización de wordpress si no puede escribir en /wp-content directamente. De lo contrario, si su servidor web tiene acceso de escritura a los archivos necesarios, se encargará de las actualizaciones y la instalación automáticamente. Este método no requiere que usted tenga acceso FTP/SFTP o SSH, pero sí requiere que usted tenga permisos de archivo específicos configurados en su servidor web.

WordPress intentará escribir un archivo temporal en su directorio /wp-content. Si esto tiene éxito, compara la propiedad del archivo con su propio uid, y si hay una coincidencia le permitirá utilizar el método "directo" de instalación de plugins, temas o actualizaciones.

Ahora bien, si por alguna razón no quiere confiar en la comprobación automática del método de sistema de archivos a utilizar, puede definir una constante, 'FS_METHOD' en su archivo wp-config.php que sea 'directo' 'ssh', 'ftpext' o 'ftpsockets' y utilizará el método. Ten en cuenta que si estableces esto como 'direct' pero tu usuario web (el nombre de usuario bajo el que se ejecuta tu servidor web) no tiene los permisos de escritura adecuados, recibirás un error.

Subir
Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad