Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个常见的linux文件权限问题:Apache和WordPress_Linux_Apache_Wordpress_Permissions - Fatal编程技术网

一个常见的linux文件权限问题:Apache和WordPress

一个常见的linux文件权限问题:Apache和WordPress,linux,apache,wordpress,permissions,Linux,Apache,Wordpress,Permissions,几周前,我从一个共享主机转到了一个VPS,我在WordPress上遇到了这些恼人的权限问题。你知道你可以从管理面板下载和升级插件(以及wordpress本身),但自从我移动它开始询问我的FTP凭据,这在我必须更新约20个插件时有点慢 我认为这应该是一种权利问题。我查看了共享托管wordpress文件,它们都属于用户名和组kovshenin(kovshenin:kovshenin),文件是-rw-r--r--目录是drwx-r-xr-x 在我的VPS上,apache在apache:apache下运

几周前,我从一个共享主机转到了一个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共享主机上运行了
id
id www-data
。用户kovshenin在组kovshenin中,www数据在组www数据中。没有更多的团体。有什么诀窍

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


有什么想法吗?谢谢。

您可以根据授予www数据所有权

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

为Apache工作

我应该怎么做才能让kovshenin和apache都可读写呢

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

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

我遇到了同样的问题,我解决了这个问题,在plesk中关闭PHP“安全模式”,现在WP可以创建文件夹并移动文件而没有任何问题


我希望这对您有所帮助。

假设您的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
sudo chgrp-R/var/www/html

当前,添加
定义('FS_方法','direct')到wp-config.php可能会起作用。但不确定这在09年是否有效。有关使用nginx的类似案例,请参见。我发现这是一个必不可少的步骤。

这很好,但是我不能用我的普通用户编辑这些文件,这让我很害怕(它们不是kovshenin拥有的组吗?如果它们是,你应该仍然能够编辑它们。如果不是,那么你可以尝试让用户kovshenin成为它们拥有的组的成员,并在编辑它们之前使用newgrp将你的组更改为该组。它们是kovshenin拥有的组,但我将从用户kovshen上载新文件。)在将成为kovshenin:kovshenin,我将不得不再次周游。我正在为我的一些客户设置主机,我希望他们的文件是kovshenin:kovshenin风格,而不是apache(或www数据).我想知道MediaTemple是怎么做到的..你可以将你的普通用户添加到www数据组,或者你也可以在命令的开头附加sudo.什么命令?请阅读我试图做的事情,它不是那么简单..没有其他组。你是说在apache:apache下运行的apache可以通过www访问WordPress文件吗-数据:www数据?如果是这样,那么找出它是如何管理的,并对其进行配置。对kovshenin进行同样的操作:kovshenin.No。www数据在共享主机上,apache在www数据下运行。用户apace在我的VPS上,它在用户和组apache:apache下运行。好的,这更接近了,非常感谢,但是用户www数据和kovshen怎么会这样呢在Media Temple共享托管帐户上没有其他组?这叫什么把戏?;)很难说,但共享托管帐户可能是使用phpsuexec设置的。嘿,caf,还有一个问题。我将wp文件夹中所有文件和dir的组所有者改为apache,所有者仍然是kovshenin,所以它是kovshenin:apache,权限是0775,所以kovshenin和apache都有读写和执行文件的权限。很好。我做了g+s部分,新文件是用kovshenin:apache创建的,一切都很好,但是,新文件的权限是755。我该如何解决775的问题?已尝试设置g+ws。。似乎不起作用。有什么想法吗?再次感谢。哦,对不起,那一定是乌玛斯克号……)@克里斯托弗·里克斯:这意味着无论您使用什么方法来创建目录,都不会将setgid位复制到新目录中(标准的
/bin/mkdir
实用程序会这样做)。创建目录后,您可能需要手动
chmod g+s
sudo chgrp -R <desired_username>.<desired_groupname> /var/www/html