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

有帮助吗?

解决方案

如果您编辑您的 wp-config.php 文件,您可以作为WordPress读取的常数预加载这些FTP设置。请记住,在共享主机上,您应该注意可能的安全含义。参见编辑 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);

其他提示

检查您的文件所有权。当Apache运行的用户可以写入WordPress目录时,则集成的升级过程都可以在没有FTP的情况下工作。 FTP凭据适用于Web服务器在您的文件上没有正确的特权,然后WordPress提示您获取FTP详细信息,并尝试将其使用为FTP回到同一服务器,以便能够编写它它需要的文件。

看来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/

当通过EasyApache4进行微调Apache 2.4以改善CentOS 7 php 7服务器中的网站负载速度时,我启用了mod_pagespagespeed。在启用它时,它将自动禁用mod_ruid2和mod_cgi(并启用其他两个模块)。当禁用mod_pages-peed时,它不会自动重新启用mod_ruid2-它将仅重新启用mod_cgi。没有mod_ruid2 WordPress将要求FTP凭据。

无需硬代码wp-config.php或将文件权限设置为777。只需手动启用mod_ruid2,rectart apache和ftp/文件权限问题就可以解决。现在可以像往常一样更新WordPress和插件,并将媒体上传到WordPress画廊。它立即起作用。

我只是检查了从mpm prefork更改为工人时,它将禁用mod_ruid2。从工人到prefork恢复时,它将不会启用mod_ruid2,从而导致本文中描述的问题。

在这两种情况下,关键是检查和启用mod_ruid2。

希望能提供帮助。

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

1A)我只是不想递归地更改所有文件的所有权(就像使用shot弹枪杀死穆斯基托一样)。特别是因为这个工作以前完美地工作。

1b)WordPress具有突然的“偷偷摸摸”功能,要求您获得FTP的凭据

2)因此,我开始使用Ardee Aram的领先优势进行更深入的挖掘。我去检查了file.php文件并检查了其所有权。似乎file.php取决于其自身所有权(错误地将其设置为根)。

修复:chown www file.php

注意:用任何发行版或设置替换www(您可以使用PSAUX | EGREP“ PHP | HTTP”,并查看其所有权在第一列中。

我希望这有助于别人对此感到沮丧。我什至不明白为什么WordPress首先不会“抱怨”,然后建议使用FTP替代方案。现在,突然被引入了一个“功能”。

许可以下: CC-BY-SA归因
scroll top