代码之家  ›  专栏  ›  技术社区  ›  kovshenin

一个普通的Linux文件权限问题:Apache和Wordpress

  •  17
  • kovshenin  · 技术社区  · 15 年前

    几周前,我从一个共享主机迁移到了一个虚拟专用程序,我在WordPress上遇到了这些恼人的许可问题。你知道你可以从管理面板下载和升级插件(以及WordPress本身),但自从我移动后,它开始询问我的FTP凭据,这在我必须更新大约20个插件时有点慢。

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

    在我的vps上,apache运行在apache:apache下,我的文件是kovshenin:kovshenin。我该怎么做才能让Kovshenin和Apache都能读写它们呢?

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

    谢谢。

    更新 :我设法跑了 id id www-data 在MediaTemple共享宿主上。用户kovshenin在组kovshenin中,WWW数据在组WWW数据中。没有更多组。诀窍是什么?

    另一个更新 好吧,我加了 apache 用户到 kovshenin 组,我的WordPress文件是 kovshenin:kovshenin 具有 rw-rw-r-- 权限和 drwxrwxr-x 目录上的权限,但仍有问题。用户 阿帕奇 可以访问文件和文件夹,我可以使用WordPress管理面板中的联机主题和插件编辑器,我可以在WordPress中对.htaccess文件进行更改,但是插件/主题安装仍然要求我提供ftp凭据!

    有什么想法吗?谢谢。

    5 回复  |  直到 10 年前
        1
  •  23
  •   caf    15 年前

    我该怎么做才能让Kovshenin和Apache都能读写它们呢?

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

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

        2
  •  1
  •   KahWee Teng    15 年前

    您可以根据 here .

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

    sudo chown -Rf www-data *
    

    为阿帕奇工作。

        3
  •  1
  •   Reza S    11 年前

    假设你的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
    
        4
  •  0
  •   Fede    15 年前

    我也遇到了同样的问题,我解决了这个问题,关闭了Plesk中的php“安全模式”,现在wp可以创建文件夹和移动文件,而不会有任何问题。

    我希望这对你有帮助。

        5
  •  0
  •   Community uzul    7 年前

    当前,添加 define('FS_METHOD', 'direct'); 对wp-config.php来说,这可能是个诀窍。但不确定这会在09年起作用。见 here 对于我使用nginx的类似案例。我发现这是必不可少的一步。