在Ubuntu上设置WP-CLI的正确方法是什么,这样我就不必使用标志--Allow-Root?

时间:2016-08-22 作者:user658182

我有一个Ubuntu服务器,典型的LAMP堆栈,默认的www数据是Apache提供文件的用户/组。

使用WP-CLI更新时,我始终必须键入--allow root标志。

如何避免这种情况?

如果我按照软件的建议去做sudo -u www-data -i -- wp <command> 引发错误:“此帐户当前不可用。”

5 个回复
SO网友:Sangam

所有文件和文件夹的所有者www-data 用户和组如果没有,则WordPress无法更改文件,因此无法从仪表板更新。wp-cli 表示要使用sudo -u www-data -i -- wp <command> 但这给了This account is currently not available.

为什么?请参见以下答案:https://askubuntu.com/a/486661/695240

您正在获取此帐户当前不可用。错误,因为用户www数据的shell设置为/usr/sbin/nologin,这是有充分理由的。您不应该以www数据的身份登录,它是web服务器使用的特殊用户/组,不适合常规shell使用。

编辑:赋予sudo访问www数据的权限是一个特别糟糕的主意。如果Apache打算使用root权限运行,它就不会有自己的组。这样做会造成巨大的安全漏洞。您已收到警告。

解决方案是什么?使用sudo -u www-data wp<command>. 所以您在使用wp-cli 而且是安全的。所有文件创建人wp-cli 将属于www-data.

SO网友:Kentur

首先,您需要进行修复,以便允许您作为www数据登录,如果您想这样做的话。否则,您可以作为root用户执行此操作。如果您以root身份登录,请添加到shell(即/root/.bash\\u别名)

alias wp=\'wp --allow-root\'

仅此而已。

SO网友:jhned

起初我也得到了使用www数据的建议,但在另一个帖子中,人们建议不要使用www数据用户,因为它是一个特殊的用户,不应该用于此目的。

然后我想出了如何通过Digital Ocean tutorial. 跑adduser exampleusername 然后你就可以跑了su - exampleusername 切换到该用户。现在wp 将在不提供root用户错误消息的情况下运行。

令人困惑的是,我在任何地方都找不到写下来的。WP文档和大多数关于此的对话都假设每个人都已经知道了他们在服务器上的方式。

SO网友:Loc_rabbirt

您需要登录到将用于wordpress的用户中,我认为默认用户将是admin,然后您需要使用SSH登录:

sshadmin@put-您的ipAdd密码

那你现在可以走了

SO网友:Mike Kormendy

如果您以root用户身份登录,只需使用以下命令成为另一个用户即可:

su [username]
将[用户名]替换为admin之类的内容,或者您知道的用户有权运行wp cli命令。(在许多情况下,管理员应该在那里)。

完成后,退出该用户操作。

相关推荐

在使用Apache的WordPress上仅显示前缀为/wp-json的路由

非常简单:我只想公开带有/wp-json前缀的路由,这样我就可以使用headless-WordPress,而不用将我的WordPress站点的其余部分公开给internet。我正在Apache上运行这个,但还没有找到的正确语法。htaccess。到目前为止,我已经尝试:<Directory /> AllowOverride None </Directory> <Directory /wp-json*> AllowOverr