我在我的live服务器上使用WordPress,它只使用SSH密钥的SFTP。
我想安装和升级插件,但似乎需要输入FTP登录来安装插件。有没有一种方法可以通过手动上传文件来安装和升级插件,而不是让WordPress来处理整个过程?
我在我的live服务器上使用WordPress,它只使用SSH密钥的SFTP。
我想安装和升级插件,但似乎需要输入FTP登录来安装插件。有没有一种方法可以通过手动上传文件来安装和升级插件,而不是让WordPress来处理整个过程?
当前回答
在wp-config.php添加定义('FS_METHOD', 'direct') 使服务器可写目录wp-content/, wp-content/plugins/。 安装插件(将插件目录复制到wp-content/plugins目录)。
工作版本3.2.1
其他回答
将以下代码添加到wp-config中
define('FS_METHOD', 'direct');
FS_METHOD强制使用文件系统方法。只能是direct、ssh2、ftpext或ftpsockets。通常,只有在遇到更新问题时才应该更改此选项。如果你改了也没用,那就改回来/去掉。在大多数情况下,如果自动选择的方法不起作用,将其设置为'ftpsockets'将正常工作。
(主要偏好)“direct”迫使它从PHP内部使用直接文件I/O请求,这在配置不佳的主机上充满了安全问题,这是在适当的时候自动选择的。
(二级偏好)“ssh2”是强制使用SSH PHP扩展如果安装
(第三优先)“ftpext”是强制使用FTP PHP扩展进行FTP访问,最后
(4日偏好)“ftpsockets”使用PHP套接字类进行FTP访问
欲了解更多信息,请访问:http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
如果你使用Ubuntu,一个对我有效的快速解决方案是将所有权交给Apache用户(默认为www-data),如下所示:
cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content
试试这个检查是否给wp-content文件夹正确的权限。
编辑wp-config.php添加以下行
define('FS_METHOD', 'direct');
Chmod“wp-content”目录到www-data进行完全访问。
现在尝试安装插件。
在终端中执行以下代码
sudo chown -R www-data /var/www
详情请浏览 Wordpress在Ubuntu上安装插件不需要FTP访问
设置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安全问题。