ultima - ¿Puedo instalar/actualizar los complementos de WordPress sin proporcionar acceso a FTP?
wordpress ultima version (25)
Estoy usando WordPress en mi servidor en vivo que solo usa SFTP usando una clave SSH .
Quiero instalar y actualizar complementos, pero parece que debe ingresar su nombre de usuario de FTP para instalar los complementos. ¿Hay alguna forma de instalar y actualizar complementos al cargar manualmente los archivos en lugar de que WordPress maneje todo el proceso?
- En
wp-config.php
agreguedefine(''FS_METHOD'', ''direct'');
- Haga que el servidor pueda escribir en los directorios
wp-content/
,wp-content/plugins/
. - Instale el complemento (copie el directorio del complemento en el directorio
wp-content/plugins
).
Trabajó en la versión 3.2.1
1. Cambie de php_mod a fastcgi con cgi y SuEXEC habilitados, funciona para mí
no olvides si no funciona intenta cambiar
2. cambiar el contenido de wp a 775 como root
chmod -R 775 ./wp-content
3- añadir a wp-config.php
define (''FS_METHOD'', ''direct'');
espero que funcione
Agregue el siguiente código a wp-config
define(''FS_METHOD'', ''direct'');
FS_METHOD fuerza el método del sistema de archivos. Solo debe ser directo, ssh2, ftpext o ftpsockets. En general, solo debe cambiar esto si tiene problemas de actualización. Si lo cambia y no funciona, cámbielo de nuevo / elimínelo. En la mayoría de los casos, configurarlo en ''ftpsockets'' funcionará si el método elegido automáticamente no lo hace.
(Preferencia principal) "directo" lo obliga a usar solicitudes de E / S de archivos directos desde PHP, esto está cargado de problemas de seguridad en hosts mal configurados. Se elige automáticamente cuando sea apropiado.
(Preferencia secundaria) "ssh2" es forzar el uso de la extensión PHP SSH si está instalada
(3ra preferencia) "ftpext" es forzar el uso de la extensión PHP PHP para el acceso a FTP, y finalmente
(4to. Preferencia) "ftpsockets" utiliza la clase de sockets de PHP para el acceso a FTP
Para obtener más información, visite: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
Como se dijo antes, ninguna de las correcciones permanentes ya funciona. Debe cambiar los permisos en consecuencia Y poner lo siguiente en su wp-config.php
:
define(''FS_METHOD'', ''direct'');
Ejecuta el siguiente código en la terminal
sudo chown -R www-data /var/www
Para más detalles, visite Wordpress en Ubuntu instalar complementos sin acceso a FTP
Es posible usar SFTP o SSH para actualizar automáticamente los complementos en WordPress, pero es necesario tener la extensión ssh2 pecl. Puedes averiguar cómo hacerlo, usando el siguiente tutorial
Intente esto Compruebe si el permiso correcto se otorga a la carpeta wp-content.
Edite el wp-config.php agregue la siguiente línea
define(''FS_METHOD'', ''direct'');
Chmod el directorio "wp-content" a www-data para un acceso completo.
Ahora intenta instalar el plugin.
La respuesta de stereointeractive cubre todas las opciones. Solo quería mencionar una forma alternativa de usar FTP. Supongo que la razón por la que no está permitiendo el acceso a FTP es por seguridad. Una forma de abordar esos problemas de seguridad es ejecutar su servidor FTP escuchando solo en 127.0.0.1
Esto le permite usar FTP desde WordPress y podrá instalar complementos sin tener que exponerlo al resto del mundo. Esto también se puede aplicar a otras aplicaciones web populares como Joomla! y Drupal. Esto es lo que hacemos con nuestros dispositivos BitNami y servidores en la nube y funciona bastante bien.
Para habilitar el uso de SSH2 para sus actualizaciones y subidas de temas, debe generar sus claves SSH y tener el módulo PHP SSH instalado. Luego, WordPress detectará que tienes SSH2 disponible y verás una opción diferente (SSH2) mostrada al realizar una carga / actualización.
1.) Asegúrese de tener el módulo PHP instalado para Debian, es:
sudo apt-get install libssh2-php
2.) Generar claves SSH, agregar una frase de contraseña es opcional:
ssh-keygen
cd ~/.ssh
cp id_rsa.pub authorized_keys
3.) Cambie el permiso para que WordPress pueda acceder a esas teclas:
cd ~
chmod 755 .ssh
chmod 644 .ssh/*
Ahora obtendrá la opción SSH2 cuando realice una carga / actualización / complemento.
4.) Para mayor facilidad, puede configurar los valores predeterminados en su wp-config.php
y esto completará previamente las credenciales de SSH en la ventana de carga de WordPress.
define(''FTP_PUBKEY'',''/home/<user>/.ssh/id_rsa.pub'');
define(''FTP_PRIKEY'',''/home/<user>/.ssh/id_rsa'');
define(''FTP_USER'',''<user>'');
define(''FTP_PASS'',''passphrase'');
define(''FTP_HOST'',''domain.com'');
La ''frase de contraseña'' es opcional, si no configura una frase de contraseña durante ssh-kengen
; entonces no lo agregue en wp-config.php
Esto solucionó mi problema. Y no tuve que hacer el chown
en absoluto. Pero he visto este método referenciado en otros lugares.
Referencias:
Por lo general, solo puede cargar su complemento en el directorio wp-content/plugins
. Si no tiene acceso a este directorio a través de SFTP, me temo que puede estar bloqueado.
Prueba esto
1) En wp-config.php add define (''FS_METHOD'', ''direct'');
2) Establezca el directorio "wp-content" en 777 para poder escribir.
3) Ahora instale el plugin.
Puede obtenerlo fácilmente escribiendo el siguiente comando en el comando promt
sudo chown -R www-data:www-data your_folder_name
o copie y pegue el siguiente código en su archivo wp-config.php.
define(''FS_METHOD'', ''direct'');
Donde "your_folder_name" es la carpeta donde está instalado WordPress dentro de esta carpeta.
Puede tener fileZilla y usar la cuenta FTP para actualizar complementos y temas. O simplemente puede iniciar sesión en Cpanel y acceder a la carpeta de wordpress y luego puede actualizar el tema descomprimiendo el tema o el complemento.
Resucitando un hilo viejo, pero hay un nuevo complemento fantástico llamado SSH SFTP Updater Support que agrega capacidades SFTP sin necesidad de editar su archivo wp-config.php
. Además, la implementación de SFTP de Wordpress se basa en algunos módulos de PHP algo oscuros que a menudo no están habilitados en los servidores; este complemento empaqueta un complemento SFTP de PHP diferente para que no tenga que configurar nada en el lado de Apache.
Me encontré con muchos problemas para hacer funcionar el soporte de SFTP. Este complemento los resolvió todos y es simplemente fantástico.
Sí, instale directamente el plugin en WordPress.
- Copie la carpeta de complementos y péguela en la carpeta de complementos de WordPress.
- vaya al lado del administrador (/ test / wp-admin) y luego, vaya al enlace del complemento y verifique el nombre del complemento.
- Active el complemento para instalarlo fácilmente.
otra opción
- Crea el archivo zip para el código del plugin.
- vaya al lado del administrador (/ test / wp-admin), luego, vaya al enlace del complemento y luego haga clic en Agregar nuevo, luego navegue por la carpeta zip del complemento e instale el complemento, luego salga la opción activar complemento, así que active el complemento y activar el complemento.
Solo quería agregar que NUNCA debe establecer el permiso o el permiso de wp-content
de cualquier carpeta en 777
.
Esto es lo que tenía que hacer para:
1) Establecí la propiedad de la carpeta de wordpress (recursivamente) para el usuario de apache, así:
# chown -R apache wordpress/
En el caso de Ubuntu, Mint o Debian # chown -R www-data:www-data wordpress/
2) Cambié la propiedad del grupo de la carpeta de wordpress (recursivamente) al grupo apache, así:
# chgrp -R apache wordpress/
Omita este paso para Ubuntu, Mint o Debian.
3) dar al propietario el privilegio completo del directorio, así:
# chmod u+wrx wordpress/*
Y eso hizo el trabajo. Mi carpeta wp-content
tiene 755
permisos, por cierto.
TL; versión DR:
# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*
También recomiendo el plugin SSH SFTP Updater Support . También resolví todos mis problemas ... especialmente en lo que respecta a la eliminación de complementos a través del administrador. Simplemente instálelo de la forma habitual, y la próxima vez que WordPress le solicite detalles de FTP, habrá campos adicionales para que copie / pegue su clave SSH privada o cargue su archivo PEM.
El único problema que tengo es hacer que recuerde la clave (probé ambos métodos). No me gusta la idea de tener que buscarlo e ingresarlo cada vez que necesito eliminar un complemento. Pero al menos es una solución sólida por ahora.
Usamos SFTP con SSH (tanto en nuestro desarrollo como en servidores en vivo), y he intentado (aunque no es demasiado difícil) usar la función de carga de WordPress. Estoy de acuerdo con Toby, cargue su (s) complemento (s) en el directorio wp-content/plugins
y luego actívelos desde allí.
Vi a mucha gente recomendando establecer un permiso para 777. Tuve el mismo problema que hace 2 días y todo lo que hice fue agregar esto a wp-content
define(''FS_METHOD'', ''direct'');
y
establece el permiso en 775 para la carpeta de plugin
Esto resolvió mi problema de pedir acceso / contraseña de acceso a FTP.
Antes de eso, tuve que agregar el complemento manualmente agregando el archivo .zip a la carpeta del complemento y luego ir a wp-admin/plugins
y tuve que instalarlo.
WordPress 2.7 le permite cargar un archivo zip directamente (hay un enlace en la parte inferior de la página de complementos) - no se necesita acceso a FTP. Esta es una nueva característica en 2.7, y funciona solo para complementos (aún no temas).
WordPress solo le pedirá su información de conexión de FTP al intentar instalar complementos o una actualización de WordPress si no puede escribir directamente en /wp-content
. De lo contrario, si su servidor web tiene acceso de escritura a los archivos necesarios, se hará cargo de las actualizaciones y la instalación automáticamente. Este método no requiere que tenga acceso a FTP / SFTP o SSH, pero requiere que tenga permisos de archivo específicos configurados en su servidor web.
Intentará varios métodos en orden, y recurrirá al 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 directorio /wp-content
. Si esto tiene éxito, compara la propiedad del archivo con su propio uid, y si hay una coincidencia, le permitirá usar el método ''directo'' de instalación de complementos, temas o actualizaciones.
Ahora, si por alguna razón no desea confiar en la comprobación automática del método de sistema de archivos que debe usar, puede definir una constante, ''FS_METHOD''
en su archivo wp-config.php
, que es ''direct'', ''ssh'', ''ftpext'' or ''ftpsockets''
y usará ese método. Tenga en cuenta que si configura esto como ''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í:
configurar un ftp o incluso una conexión SFTP o chmod 777 es una mala manera de ir a cualquier otra cosa que no sea un entorno local. Abrir incluso un método SFTP introduce más riesgos de seguridad que no son necesarios.
lo que se necesita es un permiso escribible para / wp-content / uploads & / wp-content / plugins / por el propietario de esos directorios. (linux ls -la te mostrará la propiedad).
El usuario de apache predeterminado que se ejecuta es www-data.
chmod 777 permite a cualquier usuario de la máquina editar esos archivos, no solo el usuario de subprocesos de apache / php.
SFTP, si aún no lo está utilizando, presentará otro punto de posible falla desde una fuente externa. Mientras que solo necesita el acceso del usuario local que ejecuta el proceso de apache / php para completar el objetivo.
No vi a nadie haciendo estos puntos, así que pensé que ofrecería esta información para ayudar con nuestros constantes problemas de seguridad de WP en línea.
wp-config.php
archivo wp-config.php
y agregue la siguiente línea:
define(''FS_METHOD'', ''direct'');
esto esta funcionando para mi ... Gracias
Sólo un cambio rápido a wp-config.php
define(''FS_METHOD'',''direct'');
Eso es todo, disfruta de tus actualizaciones de wordpress sin ftp !
Metodo alternativo:
Hay hosts que evitarán que este método funcione para facilitar la actualización de WordPress. Afortunadamente, hay otra manera de evitar que esta plaga le pida su nombre de usuario y contraseña de FTP.
Nuevamente, después de las declaraciones de inicio de sesión MYSQL en su archivo wp-config.php, agregue lo siguiente:
define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");