¿Puedo instalar/actualizar complementos de WordPress sin proporcionar acceso FTP?
Estoy usando WordPress en mi servidor en vivo que solo usa SFTP usando una clave SSH .
Quiero instalar y actualizar complementos, pero parece que debes ingresar tu nombre de usuario FTP para instalar los complementos. ¿Hay alguna forma de instalar y actualizar complementos cargando manualmente los archivos en lugar de que WordPress se encargue de todo el proceso?
WordPress solo le solicitará la información de su conexión FTP mientras intenta instalar complementos o una actualización de WordPress si no puede escribir /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 tenga permisos de archivos específicos configurados en su servidor web.
Probará varios métodos en orden y recurrirá a FTP si los métodos Direct y SSH no están disponibles.
https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912
WordPress intentará escribir un archivo temporal en su /wp-content
directorio. 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" para instalar complementos, temas o actualizaciones.
Ahora, si por alguna razón no desea confiar en la verificación automática de qué método de sistema de archivos usar, puede definir una constante 'FS_METHOD'
en su wp-config.php
archivo, es decir, 'direct', 'ssh', 'ftpext' or 'ftpsockets'
y usará ese método. Tenga en cuenta que si configura esto en 'directo', pero su usuario web (el nombre de usuario con el que se ejecuta su servidor web) no tiene los permisos de escritura adecuados, recibirá un error.
En resumen, si no desea (o no puede) cambiar los permisos en wp-content para que su servidor web tenga permisos de escritura, agregue esto a su archivo wp-config.php:
define('FS_METHOD', 'direct');
Permisos explicados aquí:
- http://codex.wordpress.org/Updating_WordPress#Automatic_Update
- http://codex.wordpress.org/Changing_File_Permissions
Como se indicó antes, ninguna de las correcciones permanentes ya funciona. Debes cambiar los permisos en consecuencia Y poner lo siguiente en tu wp-config.php
:
define('FS_METHOD', 'direct');
Solo quería agregar que NUNCA debes establecer el wp-content
permiso o permiso de ninguna carpeta en 777
.
Esto es lo que tuve que hacer para:
1) Configuré la propiedad de la carpeta de WordPress (recursivamente) para el usuario de Apache, así:
# chown -R apache wordpress/
2) Cambié la propiedad del grupo de la carpeta WordPress (recursivamente) al grupo Apache, así:
# chgrp -R apache wordpress/
3) otorgar al propietario privilegios completos sobre el directorio, así:
# chmod u+wrx wordpress/*
Y eso funcionó. Mi wp-content
carpeta tiene 755
permisos, por cierto.
Versión TL;DR:
# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*