一般的linux文件权限问题:Apache和WordPress

时间:2009-07-11 13:14:18

标签: linux apache wordpress permissions

几周前,我从共享主机迁移到了VPS,而且我在使用WordPress时遇到了这些恼人的权限问题。你知道你可以从管理面板下载和升级插件(以及wordpress本身),但是自从我搬了之后就开始问我的FTP凭据,当我需要更新~20个插件时,这有点慢。

我认为这应该是某种权利问题。我看了共享主机wordpress文件,它们都属于用户名和组kovshenin(kovshenin:kovshenin),文件是-rw-r - r--,目录是drwx-r-xr-x。

在我的VPS apache下运行apache:apache,我的文件是kovshenin:kovshenin。我应该怎么做才能使它们可以被kovshenin和apache读写?

另外,我将我的wordpress安装的所有文件和文件夹的权限更改为0777,这允许我在没有FTP的情况下安装和删除插件,但当我推送到自动升级到WordPress 2.8.1时,它仍然问我是否为我FTP帐户。这是一个wp问题还是我错过了什么?

感谢。

更新:我设法在MediaTemple共享主机上运行idid www-data。用户kovshenin在组kovshenin中,www-data在组www-data中。没有更多的团体。有什么诀窍?

另一次更新好的,我已将apache用户添加到kovshenin群组,我的wordpress文件为kovshenin:kovshenin rw-rw-r--权限,{对目录的{1}}权限,但仍有问题。用户drwxrwxr-x可以访问文件和文件夹,我可以使用wordpress管理面板中的在线主题和插件编辑器,我可以从wordpress中更改.htaccess文件,但是插件/主题安装仍然要求我提供FTP凭证!

有什么想法吗?感谢。

5 个答案:

答案 0 :(得分:23)

  

我应该怎么做才能使它们可以被kovshenin和apache读写?

  • 创建一个新组,说“wordpress”。
  • 将koveshenin和www-data用户添加到wordpress组。
  • 将所有文件的组所有者更改为wordpress(使用chgrp)。
  • 确保所有文件都是可写组的。
  • 在所有感兴趣的目录上设置g + s(setgid)权限位。
  • 确保kovshenin和apache的默认umask包含group read&写权限。

第二步是诀窍。这意味着每当kovshenin或apache在这些目录中创建文件时,组所有者将被设置为wordpress(而不是kovshenin或apache)。

答案 1 :(得分:1)

您可以根据here为www-data授予所有权。

在WordPress目录中运行以下命令(需要sudo):

sudo chown -Rf www-data *

适用于Apache。

答案 2 :(得分:1)

假设您的wordpress安装目录为/var/www/html,将所有文件和目录批量更改为适当的权限使用:

sudo  find /var/www/html/ -type d -exec chmod 775 {} \;
sudo  find /var/www/html/ -type f -exec chmod 664 {} \;

要批量更改所有用户的所有者组:

sudo chgrp -R <desired_username>.<desired_groupname> /var/www/html

答案 3 :(得分:0)

我有同样的问题,我解决了它在plesk中关闭PHP'safe_mode',现在WP可以创建文件夹并移动文件而没有任何问题。

我希望这对你有所帮助。

答案 4 :(得分:0)

目前,将define('FS_METHOD', 'direct');添加到wp-config.php可能会有所帮助。不确定那会在09年有效。有关使用nginx的类似案例,请参阅here。我发现这是必不可少的一步。