如何检查可用于Web服务器编写的Apache组?


13

我正在尝试使Wordpress正常工作。我目前有此错误消息:

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

尝试上传主题时。这是设置为/var/www/html/wp-content/upgrade/

drwxrwxr-x 3 ec2-user apache 4096 Jun 21 00:30 upgrade

chmod 777 upgrade使错误消失。但这不是最佳实践。但是,我认为这也应该起作用...为什么不呢?

我想上述权限可能不包含Web服务器。我应该使用哪个组来允许Web服务器写入?

(我的设置是Amazon EC2,带httpd的Amazon Linux AMI)

Answers:


16

我对Amazon EC2一无所知,但是您应该能够:

  1. 使用类似以下的命令检索运行Apache的用户的名称:

    ps aux | grep apache # The username should be in the first column.
    
  2. 使用以下groups(1)命令检索该用户所属的组:

    groups [USERNAME]
    

第一列是apache,而组apache返回apache:apache。第一个命令的一行如下:apache 11171 0.0 3.4 39984 21516?S Jun20 0:02 / usr / sbin / httpd

1
用户apache显然具有在目录中写入的权限。您说的是chmod 777解决了问题的方法,所以我猜您正在使用其他用户上传主题。我不太了解Wordpress。根据此答案,尝试将所有权更改为用户www-data
rahmu 2012年

感谢您抽出宝贵的时间查找本文和所有内容。实际上,这是一个不同的用户,因为我意识到Wordpress使用FTP来完成其工作。我通过以下建议找到了该用户,然后向其中添加了通过步骤1找到的组apache。那解决了。

2

您可以尝试使用以下命令行方法来查找您的Apache组名称:

WWW_GROUP=`ps axo user,group,comm | egrep '(apache|httpd)' | grep -v ^root | cut -d\  -f 2| uniq`
echo Apache group is: $WWW_GROUP

要获取用户,请检查:如何从命令行确定Apache用户?


1

chmod 777升级使错误消失。

好吧,在这种情况下,ls -ld /var/www/html/wp-content/upgrade/theme_name应该显示创建者的凭据,您可以将其用于精确的访问授予。

并且最好使用1777(至/tmp),因为至少它可以保证只有文件所有者才能取消链接。


1
使错误消失!解决问题的有趣方法。这不是解决方案,而是谎言。
iharob

您称“谎言”(引用原始作者的文字)吗?:)或建议至少使用1777而不是777?:)还是找出创建者所有权并将其用于“精确访问授予”?
poige 2015年

这是对系统的谎言,因为777在我所知的任何情况下都不正确。
iharob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.