#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);
#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
评论
这是最简单的方法,但是如以下Pixeline所述,请检查文件权限。这三个凭证中的两个存储在数据库中,但是第三个凭证被写入文件中(我不记得哪个凭证不在我的头上)。
– John P Bloch
2010年8月12日13:17