当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《我可以在不提供FTP访问的情况下安装/更新WordPress插件吗?》经验,为你挑选了23个好方法。

我使用的WordPress只使用我活的服务器上SFTP使用SSH密钥.

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



1> stereoscott..:

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文件的所有权,如果有匹配它可以让你使用安装插件,主题,或更新的"直接"的方法.

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

总之,如果你不希望(或无法)上的wp-content更改权限,以便您的Web服务器写权限,然后添加到您的wp-config.php文件:

define('FS_METHOD', 'direct');

权限解释如下:

http://codex.wordpress.org/Updating_WordPress#Automatic_Update

http://codex.wordpress.org/Changing_File_Permissions


我不得不这样做:sudo chown -R www-data wp-content以及授予写权限
这种方法的安全含义是什么?
在线876上使用`getmyuid`在这里可以说是不正确的,因为它返回脚本所有者的UID,而不是脚本执行器.我相信它应该是`posix_getuid`.

2> 小智..:

如前所述,perm修复程序都不再起作用.您需要相应地更改perms并将以下内容放入wp-config.php:

define('FS_METHOD', 'direct');


即使我拥有正确的权限,以便Web服务器可以写入插件目录和wp-content目录,此设置也会修复它,以便管理员不会提示更新插件的FTP/SFTP设置.谢谢.工作得很完美.
我也必须明确这样做.
他们什么时候提出这个要求?
请注意确保wp-config.php文件中没有以下内容:define('FS_METHOD','ftpext'); 在这种情况下,放置define('FS_METHOD','direct'); 在文件的底部将无法正常工作.你必须擦除或注释掉define('FS_METHOD','ftpext'); 如果您从另一台需要FTP的服务器迁移,则可能会发生这种情况.

3> sufinawaz..:

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

这是我必须要做的:

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

# chown -R apache wordpress/

如果是Ubuntu,Mint或Debian # chgrp -R apache wordpress/

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

# chmod u+wrx wordpress/*

跳过Ubuntu,Mint或Debian的这一步

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

wp-content

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

TL; DR版本:

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


我不同意.它与设置为777不完全相同.如果将权限设置为777,则计算机中的任何用户都将具有写访问权.这本身就是一个问题.虽然你是对的,那apache现在可以改变php文件,这首先是意图(为了更新或安装任何东西).如果有人设法将恶意php文件放入服务器,这是一个全新的问题,并且对不同的用户进行chowning将无济于事.
将你的wordpress设置为apache所拥有的就像设置777一样糟糕.结果是一样的:任何php脚本现在都可以改变你的wordpress文件.最好的选择是chown apache:apache临时,安装你的更新并chown回原版或使用ssh/ftp技巧
这是唯一一个帮助我的人!非常感谢,经过多年开发Wordpress网站,这仍然是一个经典的问题!
谢谢,它也节省了我的一天,因为我没有FTP权限,但只有root权限.

4> Lamy..:

    wp-config.phpdefine('FS_METHOD', 'direct');

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

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

适用于版本3.2.1


也适用于4.0版.

5> StreetCoder..:

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

define('FS_METHOD', 'direct');

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



6> ravi patel..:

只需快速更改wp-config.php即可

define('FS_METHOD','direct');

就是这样,享受你的wordpress更新没有ftp!

替代方法:

有些主机会阻止此方法简化您的WordPress更新.幸运的是,还有另一种方法可以防止这种有害生物提示您输入FTP用户名和密码.

同样,在wp-config.php文件中的MYSQL登录声明之后,添加以下内容:

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



7> JacquelineIO..:

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

1.)确保你为debian安装了PHP模块:

sudo apt-get install libssh2-php

2.)生成SSH密钥,添加密码是可选的:

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

3.)更改权限,以便WordPress可以访问这些键:

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

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

4.)为了增加便利性,您可以在您的设置中设置默认值wp-config.php,这将在WordPress上传窗口中预先填充SSH凭据.

define('FTP_PUBKEY','/home//.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home//.ssh/id_rsa');
define('FTP_USER','');
define('FTP_PASS','passphrase');
define('FTP_HOST','domain.com');

如果你没有设置密码,那么'密码'是可选的ssh-kengen; 然后不要添加它wp-config.php

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

参考文献:

http://wp.tutsplus.com/articles/tips-articles/quick-tip-upgrade-your-wordpress-site-via-ssh/

http://codex.wordpress.org/Editing_wp-config.php#Enabling_SSH_Upgrade_Access



8> Toby Allen..:

通常,您只需将插件上传到wp-content\plugins目录即可.如果您无法通过SFTP访问此目录,我担心您可能会被卡住.



9> Roman..:

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

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

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

define('FS_METHOD', 'direct');

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



10> 小智..:

在终端中执行以下代码

sudo chown -R www-data /var/www

有关更多详细信息,请访问 Ubuntu上的Wordpress,无需FTP即可安装插件


让www-data访问您的webdirectory中的所有内容并不是一个好主意

11> mikermcneil..:

如果您使用的是Ubuntu,那么对我有用的快速解决方案是为Apache用户提供所有权(默认为www-data),如下所示:

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


不要为不需要它的文件授予执行权限.

12> Rahul Balakr..:

将以下代码添加到wp-config

define('FS_METHOD', 'direct');

FS_METHOD强制文件系统方法.它应该只是直接,ssh2,ftpext或ftpsockets.通常,只有在遇到更新问题时才应更改此设置.如果您更改它并且没有帮助,请将其更改/删除.在大多数情况下,如果自动选择的方法不能,则将其设置为"ftpsockets"将起作用.

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

(辅助首选项)"ssh2"是强制使用SSH PHP扩展(如果已安装)

(第三个偏好)"ftpext"是强制使用FTP PHP扩展进行FTP访问,最后

(第四个偏好)"ftpsockets"利用PHP套接字类进行FTP访问

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



13> D. Lambert..:

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



14> 小智..:

    从改变php_modfastcgicgiSuEXEC启用,对我的作品

不要忘记如果不工作尝试改变

    以root身份将wp-content更改为775

    chmod -R 775 ./wp-content

    添加到wp-config.php

    define('FS_METHOD','direct');

我希望它有效



15> chrismanders..:

恢复旧线程,但有一个很棒的新插件称为SSH SFTP更新程序支持,它增加了SFTP功能而无需编辑wp-config.php文件.此外,Wordpress的SFTP实现依赖于一些有些模糊的PHP模块,这些模块通常不在服务器上启用; 这个插件包装了一个不同的PHP SFTP插件,所以你不必在Apache端配置任何东西.

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



16> Raj..:

试试这个

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

2)将"wp-content"目录设置为777以进行可写.

3)现在安装插件.


不要777你的上传目录,这是不安全的,不应该是一个答案!
嗨Mohan,感谢大量的FS_METHOD选项.这确实是我想要的.我确实需要说以下内容:除非情况特殊,否则每个人都不需要777.这使得目录世界可读,可写和可执行.这是一个巨大的安全风险.正确的解决方案是找出您的apache用户是谁(www-data,_www或类似).此用户需要对wp-content的读写访问权限或需要对此dir的所有权('sudo chown www-data wp-content'),没有执行权限.我很抱歉有点生硬,但777对网络内容很危险.

17> kaysa..:

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

这允许您从WordPress内部使用FTP,您将能够安装插件,而不会将其暴露给世界其他地方.这也可以应用于其他流行的Web应用程序,如Joomla!和Drupal.这就是我们对BitNami设备和云服务器所做的工作,并且运行良好.



18> 小智..:

我还推荐使用SSH SFTP Updater Support插件.刚解决了我所有的问题......特别是关于通过管理员删除插件的问题.只需以通常的方式安装它,下次当您收到WordPress的FTP详细信息提示时,您将有额外的字段供您复制/粘贴您的私人SSH密钥或上传您的PEM文件.

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



19> 小智..:

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

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

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

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

其他选择

    为插件代码创建zip文件.

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



20> Schoffelman..:

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



21> Sudar..:

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



22> 小智..:

我看到很多人都建议将权限设置为777.我遇到的问题就像2天前一样,我所做的就是把它添加到wp-content

define('FS_METHOD', 'direct');

为插件文件夹设置775权限

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

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



23> Javeed Shake..:

尝试执行此操作检查是否对wp-content文件夹授予了正确的权限。

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

define('FS_METHOD', 'direct');

将“ wp-content”目录更改为www-data以进行完全访问。

现在尝试安装插件。

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有