如何在更新时阻止WordPress提示我输入FTP信息?

#1 楼

如果您编辑wp-config.php文件,则可以将这些FTP设置预加载为WordPress读取的常量。请记住,在共享主机上,您应该注意可能的安全隐患。
有关详细信息,请参见编辑wp-config.php

您的设置会有所不同,但这些设置对我和我的主机设置均有效。我包括一些未使用的常量,它们的前缀为:

define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_HOST', 'ftp.my-site.example.com');
// define('FTP_SSL', false);


评论


这是最简单的方法,但是如以下Pixeline所述,请检查文件权限。这三个凭证中的两个存储在数据库中,但是第三个凭证被写入文件中(我不记得哪个凭证不在我的头上)。

– John P Bloch
2010年8月12日13:17

#2 楼

检查您的文件所有权。当以apache身份运行的用户可以写入wordpress目录时,则集成升级过程无需ftp就可以正常工作。如果网络服务器上的文件没有正确的权限,则使用FTP凭据,然后wordpress会提示您输入FTP详细信息,并尝试使用这些凭据将FTP返回到要写入的同一服务器上。它需要的文件。

评论


您实际上不应该将文件所有权修改为Web服务器的所有权,因为这存在潜在的安全风险。

–奥托
2011年10月20日,下午1:23

...除非它设置不正确,就我而言:)

– Pixeline
2011-10-20 9:35

#3 楼

似乎WordPress不仅会检查目录是否可写,还会检查Apache用户是否拥有该目录(或者至少检查Apache用户是否拥有其创建的临时文件)。在/wp-admin/includes/file.php上观察以下代码行:get_filesystem_method():

if ( $temp_handle ) {
    if ( getmyuid() == @fileowner($temp_file_name) )
        $method = 'direct';
    @fclose($temp_handle);
    @unlink($temp_file_name);
}


因此,一种快速的解决方案是发出此命令并将整个Wordpress安装的所有权授予Apache:

sudo chown -R www-data wordpress/


其中www-data是Apache用户,而wordpress当然是您的WordPress安装文件夹。

我在这里进一步记录了我的解决方案:https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

评论


该链接现在已消失。这是一个档案:web.archive.org/web/20131213005955/http://rubiks.ph/…

–山姆·威尔逊
15年6月18日在8:47

任何人都可以解释以下详细信息:“ $ allow_relaxed_file_ownership可选。是否允许组/世界可写。”

–山姆·威尔逊
15年6月18日在9:20

@Sam Wilson我现在将一些博客条目迁移到了免费的WordPress帐户。旧域已死。

– Ardee Aram
15年6月19日在1:16

#4 楼

当通过EasyApache4微调Apache 2.4以提高Centos 7 PHP 7服务器中的网站加载速度时,我启用了mod_pagespeed。启用它后,它将自动禁用mod_ruid2和mod_cgi(并启用其他两个模块)。禁用mod_pagespeed时,它不会自动重新启用mod_ruid2-它只会重新启用mod_cgi。如果没有mod_ruid2,则Wordpress将请求FTP凭据。

无需对wp-config.php进行硬编码或将文件许可权(危险地)设置为777。只需手动启用mod_ruid2,重新启动Apache和FTP /文件权限问题已解决。现在可以照常更新Wordpress和插件,并将媒体上传到Wordpress画廊。它马上就起作用。

我刚刚检查了一下,从MPM Prefork更改为Worker时,它将禁用mod_ruid2。从Worker还原为Prefork时,它将不会启用mod_ruid2,从而导致本文所述的问题。

两种情况下,关键是检查并启用mod_ruid2。

希望有所帮助。

#5 楼

1)我不同意上面的答案,因为它太通用了

1a)我只是不想递归地更改我所有文件的所有权(例如使用a弹枪杀死蚊子) )。

1b)突然具有“偷偷摸摸”功能的Wordpress要求您提供ftp的凭据

2)因此,我开始更深入地研究使用Ardee Aram的领导。
我检查了file.php文件并检查了它的所有权。似乎file.php依赖于它自己的所有权(错误地设置为root)。

修复:chown www file.php

注意:将www替换为任何内容您的发行版或设置是(您可以使用ps aux | egrep“ php | http”并在第一栏中查看其所有权。

希望这可以帮助其他人对此感到沮丧。
我什至不知道为什么wordpress首先不“抱怨”,然后提出使用FTP替代方案,现在突然有了一个“功能”。

评论


欢迎来到WPSE,这是企鹅耳语者。请随便参观。关于“以上答案”,答案可能会由于人们的投票而随时改变顺序。很高兴您可以编辑帖子以指定您要引用的答案,这样很清楚。感谢您添加您的想法!

–蒂姆·马隆(Tim Malone)
16年5月10日在21:10