首页 文章

我可以在不提供FTP访问的情况下安装/更新WordPress插件吗?

提问于
浏览
494

我在我的实时服务器上使用WordPress,它只使用SFTP使用SSH键 .

我想安装和升级插件,但似乎您需要输入FTP登录才能安装插件 . 有没有办法通过手动上传文件而不是让WordPress处理整个过程来安装和升级插件?

25 回答

  • 39

    是的,直接在WordPress中安装插件 .

    • 复制插件文件夹并粘贴到WordPress插件文件夹中 .

    • 转到管理员端(/ test / wp-admin)然后转到插件链接并检查插件的名称 .

    • 激活插件,以便轻松安装插件 .

    其他选择

    • 为插件代码创建zip文件 .

    • 转到管理员端(/ test / wp-admin)然后转到插件链接然后点击添加新的然后浏览插件zip文件夹并安装插件然后出来选项激活插件所以这样做激活插件并激活插件 .

  • 14

    通常,您只需将插件上传到 wp-content\plugins 目录即可 . 如果你不害怕,你可能会被卡住 .

  • 7
    • wp-config.php 添加 define('FS_METHOD', 'direct');

    • 使服务器可写目录 wp-content/wp-content/plugins/ .

    • 安装插件(将插件目录复制到 wp-content/plugins 目录中) .

    适用于版本3.2.1

  • 693

    我们使用带有SSH的SFTP(在我们的开发服务器和实时服务器上),我尝试过(虽然不太难)使用WordPress上传功能 . 我同意Toby,将你的插件上传到 wp-content/plugins 目录,然后从那里激活它们 .

  • 230

    试试这个检查wp-content文件夹是否有正确的权限 .

    编辑wp-config.php添加以下行

    define('FS_METHOD', 'direct');
    

    chmod将“wp-content”目录转换为www-data进行完全访问 .

    现在尝试安装插件 .

  • 7

    如前所述,perm修复工作都不再有效 . 您需要相应地更改perms并将以下内容放在 wp-config.php 中:

    define('FS_METHOD', 'direct');
    
  • 14

    stereointeractive的答案涵盖了所有选项 . 只是想提一下使用FTP的另一种方法 . 我猜你不允许FTP访问的原因是为了安全 . 解决这些安全问题的一种方法是运行仅在127.0.0.1上监听的FTP服务器

    这允许您从WordPress内部使用FTP,您将能够安装插件,而不会将其暴露给世界其他地方 . 这也可以应用于其他流行的Web应用程序,如Joomla!和Drupal . 这就是我们对BitNami appliancescloud servers的处理方式,并且效果很好 .

  • 5

    为了能够使用SSH2进行更新和主题上传,您必须生成SSH密钥并安装PHP SSH模块 . 然后WordPress将检测到您有SSH2可用,并且您将看到在执行上载/升级时显示的其他选项(SSH2) .

    1.) Make sure you have the PHP module installed for debian it is:

    sudo apt-get install libssh2-php
    

    2.) Generate SSH keys, adding a passphrase is optional:

    ssh-keygen
    cd  ~/.ssh
    cp id_rsa.pub authorized_keys
    

    3.) Change the permission so that WordPress can access those keys:

    cd ~
    chmod 755 .ssh
    chmod 644 .ssh/*
    

    现在,在执行上传/升级/插件时,您将获得SSH2选项 .
    WP SSH Connection

    4.) For added ease you can setup the defaults in your wp-config.php and this will pre-populate the SSH credentials in the WordPress upload window.

    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');
    

    如果在 ssh-kengen 期间未设置密码,则'passphrase'是可选的;然后不要在 wp-config.php 中添加它

    这解决了我的问题 . 而且我根本不需要做 chown . 但我已经看到在其他地方引用的这种方法 .

    参考文献:

  • 32

    WordPress只会在尝试安装插件或WordPress更新时提示您输入FTP连接信息,如果它无法直接写入 /wp-content . 否则,如果您的Web服务器具有对必要文件的写入权限,则它将自动处理更新和安装 . 此方法不要求您具有FTP / SFTP或SSH访问权限,但它确实要求您在Web服务器上设置特定的文件权限 .

    它将按顺序尝试各种方法,如果Direct和SSH方法不可用,则返回FTP .

    https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912

    WordPress将尝试将临时文件写入 /wp-content 目录 . 如果成功,它会将文件的所有权与其自己的uid进行比较,如果匹配,则允许您使用'direct'方法安装插件,主题或更新 .

    现在,如果由于某种原因你不想依赖自动检查要使用哪个文件系统方法,你可以在 wp-config.php 文件中定义一个常量 'FS_METHOD' ,它是 'direct', 'ssh', 'ftpext' or 'ftpsockets' 并且它将使用该方法 . 请记住,如果将其设置为'direct',但您的Web用户(运行Web服务器的用户名)没有正确的写入权限,则会收到错误 .

    总之,如果您不希望(或不能)更改wp-content的权限,以便您的Web服务器具有写权限,请将其添加到您的wp-config.php文件中:

    define('FS_METHOD', 'direct');
    

    权限解释如下:

  • 5

    您可以拥有fileZilla并使用FTP帐户来更新插件和主题 . 或者您可以登录Cpanel并访问wordpress文件夹,然后您可以通过解压缩主题或插件来更新主题 .

  • 86

    在终端中执行以下代码

    sudo chown -R www-data /var/www
    

    有关详细信息,请访问Wordpress on Ubuntu install plugins without FTP access

  • 1

    只是想补充一点,你绝不能将 wp-content 权限或任何文件夹的权限设置为 777 .

    这是我必须要做的:

    1)我将wordpress文件夹的所有权(递归地)设置为apache用户,如下所示:

    # chown -R apache wordpress/

    如果是Ubuntu,Mint或Debian # chown -R www-data:www-data wordpress/

    2)我将wordpress文件夹的组所有权(递归地)更改为apache组,如下所示:

    # chgrp -R apache wordpress/

    跳过Ubuntu,Mint或Debian的这一步

    3)授予所有者对目录的完全权限,如下所示:

    # chmod u+wrx wordpress/*

    这就完成了工作 . 我的 wp-content 文件夹有 755 权限,顺便说一句 .

    TL; DR版本:

    # chown -R apache:apache wordpress
    # chmod u+wrx wordpress/*
    
  • 67

    恢复一个旧线程,但有一个很棒的新插件叫做SSH SFTP Updater Support,它增加了SFTP功能而无需编辑你的 wp-config.php 文件 . 另外,Wordpress 's SFTP implementation relies on some somewhat obscure PHP modules that are often not enabled on servers; this plugin packages a different PHP SFTP plugin so you don' t必须在Apache端配置任何东西 .

    我遇到了很多让SFTP支持工作的问题 - 这个插件解决了所有这些问题并且非常棒 .

  • 13

    打开 wp-config.php 文件并添加以下行:

    define('FS_METHOD', 'direct');

    这对我有用......谢谢

  • 8

    我也推荐SSH SFTP Updater Support plugin . 刚解决了我所有的问题......特别是关于通过管理员删除插件的问题 . 只需以通常的方式安装它,下次您需要额外的字段来复制/粘贴您的私人SSH密钥或上传您的PEM文件 .

    我唯一的问题是让它记住密钥(试过两种方法) . 不喜欢每次我需要删除插件时必须找到并输入它的想法 . 但至少它现在是一个可靠的解决方案 .

  • 5

    将以下代码添加到wp-config

    define('FS_METHOD', 'direct');
    

    FS_METHOD 强制文件系统方法 . 它应该只是直接,ssh2,ftpext或ftpsockets . 通常,只有在遇到更新问题时才应更改此设置 . 如果您更改它并且它没有't help, change it back/remove it. Under most circumstances, setting it to ' ftpsockets'将起作用,如果自动选择的方法没有 .

    (Primary Preference) "direct" 强制它使用PHP内部的直接文件I / O请求,这很容易在配置不当的主机上打开安全问题,这在适当时自动选择 .

    (Secondary Preference) "ssh2" 是强制使用SSH PHP扩展(如果已安装)

    (3rd Preference) "ftpext" 是强制使用FTP PHP扩展进行FTP访问,最后

    (4th Preference) "ftpsockets" 利用PHP套接字类进行FTP访问

    欲了解更多信息,请访问:http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

  • 4

    WordPress 2.7允许您直接上传zip文件(插件页面底部有一个链接) - 无需FTP访问 . 这是2.7中的一个新功能,它仅适用于插件(不是主题) .

  • 17

    您可以通过在命令promt上键入以下命令来轻松获得它

    sudo chown -R www-data:www-data your_folder_name
    

    或者将以下代码复制并粘贴到wp-config.php文件中 .

    define('FS_METHOD', 'direct');
    

    其中“your_folder_name”是此文件夹中安装WordPress的文件夹 .

  • 12

    试试这个

    1)在wp-config.php中添加define('FS_METHOD','direct');

    2)将“wp-content”目录设置为777以进行写入 .

    3)现在安装插件 .

  • 10

    设置ftp甚至是SFTP连接或chmod 777是除了本地环境之外的任何其他方法 . 甚至打开SFTP方法也会带来更多不需要的安全风险 .

    所需要的是这些目录的所有者对/ wp-content / uploads和/ wp-content / plugins /的可写权限 . (linux ls -la将显示你的所有权) .

    运行的默认apache用户是www-data .

    chmod 777允许机器上的任何用户编辑这些文件,而不仅仅是apache / php线程用户 .

    SFTP如果您还没有使用它,将从外部源引入另一个可能的故障点 . 而您只需要运行apache / php进程的本地用户访问即可完成目标 .

    没有看到有人提出这些观点,所以我想我会提供这些信息来帮助解决我们在线持续的WP安全问题 .

  • 7

    可以使用SFTP或SSH自动更新WordPress中的插件,但您需要具有ssh2 pecl扩展名 . 您可以使用以下tutorial了解如何操作

  • 2

    如果你在Ubuntu,一个对我有用的快速解决方案是给Apache用户(默认为www-data)的所有权,如下所示:

    cd your_wordpress_directory
    sudo chown -R www-data wp-content
    sudo chmod -R 755 wp-content
    
  • 7

    只需快速更改 wp-config.php

    define('FS_METHOD','direct');
    

    就是这样,享受你的wordpress更新 without ftp

    Alternate Method:

    有些主机会阻止此方法简化您的WordPress更新 . 幸运的是,还有另一种方法可以防止这种有害生物提示您输入FTP用户名和密码 . 同样,在wp-config.php文件中的MYSQL登录声明之后,添加以下内容:

    define("FTP_HOST", "localhost");
    define("FTP_USER", "yourftpusername");
    define("FTP_PASS", "yourftppassword");
    
  • 20

    1.启用 cgiSuEXEC ,从 php_mod 更改为 fastcgi ,对我有用

    don't forget if don't work try to change
    2 . 以root身份将wp-content更改为775
    chmod -R 775 ./wp-content 3-添加到 wp-config.php
    define('FS_METHOD', 'direct');

    我希望它有效

  • 0

    我看到很多人都建议将权限设置为777.我在2天前遇到了同样的问题而我所做的只是将其添加到wp-content

    define('FS_METHOD', 'direct');
    

    为插件文件夹设置775权限

    这解决了我询问FTP访问登录/密码的问题 .

    在此之前,我必须通过将.zip文件添加到插件文件夹手动添加插件,然后转到 wp-admin/plugins 并且必须安装它 .

相关问题