嘿,伙计们,我花了很长时间试图解决这个问题。我想知道WordPress中的文件权限应该是什么样子in order to use the autoupdate feature. 到目前为止,我的wordpress安装程序一直在询问我的FTP信息,我不想使用那种升级/安装方法,我想使用纯/直接PHP。
某些上下文:
Web服务器和php fcgi守护程序运行为www-data:www-data
/home/blaenk/sites/domain.tld/首先,我read 所有文件/文件夹应由我的用户(blaenk)拥有,并可由我的用户写入。但这不起作用,在花了很多小时研究之后,IRC频道的一个人告诉我试着把所有的东西都设置为所有权www-data:www-data
这起作用了。我不再被要求提供FTP信息,插件安装自动运行。
然而,我最初将站点文件放在我的主目录中,正是因为我希望能够以我的用户身份编写/创建它们。我甚至加入了www-data
目录如中所述this guide.
我已经知道文件应该是644,目录应该是755。然而,这似乎更多的是所有权问题。我不想让你www-data:www-data
在wordpress安装的所有内容上,我想知道哪些文件/目录特别需要这种所有权级别?
EDIT: 我相信,尽管所有文件都归我的用户所有,但我的共享主机wordpress安装似乎一切正常的原因是我使用的共享主机suexec 它大概以我的身份运行PHP,所以换句话说,文件属于Web服务器。
最合适的回答,由SO网友:Jorge Israel Peña 整理而成
在我的问题中,我表示困惑的是,尽管所有文件都归我的用户所有,但在我的共享主机上一切都能无缝工作,而在我的VPS上,除非所有文件都归Web服务器所有,否则自动升级将无法工作。
我很确定这是我的共享主机使用suexec 它基本上以我的用户身份运行脚本。因此,从本质上讲,我共享主机上的文件属于“web服务器”(实际上是CGI守护进程)。
实际上,我在VPS上运行nginx和php fpm,所以我没有访问Apache的suexec的权限。然而,我只是将php fpm配置为自己运行,以测试我的理论,它确实与我的用户拥有的所有文件无缝地工作。我相信这会被视为一种安全风险(不确定),因此我将进一步调查,看看在这方面我能做些什么,以避免以我的用户身份运行它,但至少现在我知道了问题所在!
SO网友:Frank Nocke
您的“混合”体验可能来自您的两个用户是否属于同一组。当然,什么是“群体权利”
传统上,在php中,phpuser(又名apacheuser或webuser或cgideamon)无权更改文件,只有ftpuser(某些codex描述中又名“您的用户帐户”)才能更改文件,从而使安全漏洞更难更改脚本。
这当然使得任何基于php的php文件更新都不可能。因此,在PHP中,通常会将文件所有权从FTP用户更改为phpuser。在此之前,值得注意的是,“更新”发生在“FTP鞋”(正如您提供的凭据)中。然后,下载的ZIP的解包当然可能会再次通过脚本方式发生……好吧,然后是wp内容文件夹,当然会通过php脚本进行触摸和进一步填充……(我想我们都曾在wp中遇到过这个问题)事情可能会变得复杂。
in short: WordPress的Codex在Hardening File Permissions 尽可能“贪婪”/“安全”地授予文件权限。通过user account
他们指的是FTP帐户(即不是cgi deamon/php用户/…)。