【问题标题】:Wordpress- cannot install pluginsWordpress - 无法安装插件
【发布时间】:2018-01-21 21:26:14
【问题描述】:

我在 ec2 的 ubuntu 16 上托管了一个 wordpress 4.8.1 网站。

我尝试安装插件,但失败了。

它会弹出一个连接信息对话框并要求我填写主机名和 FTP acc/pw。

我真的需要安装ftp服务才能安装wordpress的插件吗?

如果不是,是什么问题导致wordpress弹出这个对话框?

我已尝试将 wp-content/plugins 更改为 777,但仍然无法正常工作。

我已将 web 目录的所有者更改为 www-data(用于 nginx 和 php7-fpm)。

我尝试在 wp-config.php 中添加 define('FS_METHOD', 'direct') ,它停止询问 ftp 信息,但随后显示无法创建目录。

【问题讨论】:

标签: wordpress nginx amazon-ec2 ubuntu-16.04


【解决方案1】:

添加

define('FSMETHOD', 'direct');
putenv('TMPDIR='.iniget('uploadstmp_dir')); 

到 wp-config.php 文件

然后在 wp-content 文件夹中更改所有权:chown -R :www-data *。


另一种选择是覆盖 wp-config.php 中的默认文件权限:

define('FS_CHMOD_DIR', (0755 & ~ umask()));
define('FS_CHMOD_FILE', (0644 & ~ umask()));

【讨论】:

  • 最终是 wp-content 的权限问题,而不仅仅是插件文件夹。刚刚发现wordpress有自己的机制可以选择direct > ftp来安装插件。
【解决方案2】:

创建ftp账号并在wp-config.php中添加这段代码:

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/var/www/hostpath');
define('FTP_USER', 'username'); // here username
define('FTP_PASS', 'password'); // here password
define('FTP_HOST', 'host'); // e.g ftp.example.com
define('FTP_SSL', false);

【讨论】: