61

我刚刚在 Amazon Linux AMI EC2 微型实例上安装了 WordPress 3.5.2。当我尝试安装 wp-db-backup 插件(插件 -> 添加新插件)时,系统提示我输入主机名、FTP 用户名、FTP 密码和连接类型。

这个问题的答案建议passwd在命令行中完成。根据这个答案,我不清楚我在命令行中到底在做什么。所以我用谷歌搜索了一篇关于配置 vsftpd的文章。这篇文章讨论了在服务器上生成证书,我想知道我是否会按照这篇文章偏离轨道。我在本地使用 CentOS 6.3,在 EC2 上使用 Amazon Linux AMI)。

任何帮助/指导将不胜感激。提前致谢。


编辑


我正在阅读WordPress Codex,其中讨论了 wp-config.php 文件的 ftp 常量。它建议我根据需要定义尽可能少的这些常量来纠正我的更新问题。我在正确的轨道上(尤其是安全方面)?我在下面列出了常量。任何指导将不胜感激。

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'ftp.example.org');
define('FTP_SSL', false);
4

9 回答 9

160

这里的主要问题是 apache 无权访问这些文件夹。默认权限授予 AMI 中的 ec2-user。

在您的终端中运行它,您应该一切顺利。

sudo chown -R apache:apache /var/www/html

完成此操作后,您应该能够上传主题、插件、更新等。

于 2014-07-22T10:26:03.157 回答
53

在您的 wp 配置文件中尝试此代码

define('FS_METHOD', 'direct');
于 2013-09-27T06:48:45.590 回答
43

更改 wordpress 目录的所有者

sudo chown -R www-data:www-data /var/www/wordpress

或尝试

define('FS_METHOD', 'direct');
于 2015-01-14T17:51:09.760 回答
6

这对我有用:

首先按照 Faizan 所说的去做,如果您的wp-config.php:

# you will want this as close to the bottom as possible
define('FS_METHOD', 'direct');

然后,您需要暂时将您的文件权限交换为更开放的状态。在命令行中键入以下内容:

sudo chmod 777 -R /your_whole_wp_project

现在运行您的更新,然后将权限更改回正常的内容,例如:

sudo chmod 664 -R /your_whole_wp_project

我知道这是一个安全问题,也许不是最好的方法,但它是我唯一可以尝试让它为我工作的方法。

于 2015-06-03T21:18:02.580 回答
5

我在Stephen White 的博客文章中找到了这个问题的答案。

简而言之,我必须

  • 在我的 EC2 实例固件中为端口范围 20-21 和一些其他端口创建自定义规则
  • 安装和配置 FTP 服务器 vsftpd
  • 创建和配置 FTP 用户
  • 并将我的 FTP 设置放在 wp-config.php 文件中

    现在这对我来说效果很好。

于 2013-07-22T17:11:53.450 回答
2

'define('FS_METHOD', 'direct');' 在 EC2 中编辑我的安全组以允许对端口 443 (HTTPS) 的出站访问后,建议对我有用

于 2015-01-22T22:32:57.303 回答
1

sudo chown -R www-data:www-data /var/www/html/wordpress

上面的命令对我有用。

于 2015-02-01T01:23:13.510 回答
1
sudo chown -R apache:apache /var/www/html

如果这不起作用,请尝试用“www-data”替换“apache”,你会很高兴的。

于 2021-07-07T14:52:57.337 回答
0

对我来说,这是一个 selinux 问题。这为我做到了:chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/

见:https ://www.svnlabs.com/blogs/centos-7-selinux-apache-php-writeaccess-permission/

于 2018-05-04T04:26:25.863 回答