Answers:
如果您编辑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);
检查您的文件所有权。当以apache身份运行的用户可以写入wordpress目录时,则集成升级过程无需ftp就可以正常工作。如果网络服务器上的文件没有正确的权限,则使用FTP凭据,然后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_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。
希望能有所帮助。
1)我不能同意上面的答案,因为它太笼统了
1a)我只是不想递归地更改我所有文件的所有权(例如使用shot弹枪杀死蚊子)。特别是在此之前完美地工作。
1b)突然间具有“鬼nea”功能的Wordpress要求您提供ftp的凭据
2)因此,我开始使用Ardee Aram的领导进行更深入的研究。我去检查了file.php文件并检查了它的所有权。似乎file.php依赖于它自己的所有权(错误地设置为root)。
修复:chown www file.php
注意:将www替换为您的发行版或设置(您可以使用ps aux | egrep“ php | http”并在第一栏中查看其所有权。
我希望这可以帮助其他人避免对此感到沮丧。我什至不明白为什么wordpress首先不“抱怨”然后提出使用FTP替代方案。现在,就像突然出现的“功能”一样。